Cara menggunakan dictionary comprehension python youtube

Fitur list comprehension menyediakan cara untuk menulis loop

[<the_expression> for <the_element> in <the_iterable>]
98 lebih jelas. Fitur ini berguna ketika kamu mau membuat list baru dari list yang sudah ada atau dari iterable. Contohnya, kamu bisa menggunakan list comprehension untuk membuat list berisi nilai kuadrat dari list berisi angka. Begitu pula kmu bisa menggunakan kondisi yang sama pada sebuah list berisi angka sedemikian sehingga list yang baru dibuat adalah subset dari list yang asli.

Perlu diketahui kamu tidak bisa menulis semua loop

[<the_expression> for <the_element> in <the_iterable>]
98 sebagai list comprehension. Satu hal lagi: nama 'list comprehension' bisa sedikit membingungkan karena seakan hanya bekerja untuk list saja. Pada kenyataannya, kata 'list' pada list comprehension digunakan untuk menunjukkan bahwa kamu bisa membuat loop untuk semua iterable dalam Python dan hasil akhirnya berupa list.

Loop dan List Comprehension

List comprehension dasar yang tidak menggunakan kondisi akan seperti berikut:

1
[<the_expression> for <the_element> in <the_iterable>]

Kita mulai dengan menulis loop

[<the_expression> for <the_element> in <the_iterable>]
98 sederhana untuk 15 bilangan pertama kelipatan 5. Pertama, kamu perlu buat list kosong. Lalu, kamu perlu mengiterasi sekumpulan angka dan mengalinya dengan 5. Urutan angka baru yang kamu dapat akan berisi kelipatan 5.

1
multiples = []
2
3
for n in range(1,16):
4
    multiples.append(n*5)
5
[<the_expression> for <the_element> in <the_iterable>]
0
[<the_expression> for <the_element> in <the_iterable>]
1
[<the_expression> for <the_element> in <the_iterable>]
2
[<the_expression> for <the_element> in <the_iterable>]
3
[<the_expression> for <the_element> in <the_iterable>]
4

Loop

[<the_expression> for <the_element> in <the_iterable>]
98 di atas pada dasarnya memilki struktur berikut:

1
[<the_expression> for <the_element> in <the_iterable>]
6
2
[<the_expression> for <the_element> in <the_iterable>]
8

Jika kamu bandingkan dengan list comprehension yang kamu baca sebelumnya, kamu bisa lihat bahwa

1
02 adalah
1
03,
1
04 adalah
1
05, dan
1
06 adalah
1
07. Mengisi nilai-nilai ini pada list comprehension akan memiliki hasil sebagai berikut:

1
1
0
2
3
1
3
4
1
5

Begitu pula kamu bisa mendapat list dengan pangkat tiga dari sejumlah bilangan dengan cara berikut:

1
1
7
2
3
multiples = []
0
4
multiples = []
2

Kondisi dalam List Comprehension

Kamu juga bisa menggunakan kondisi

1
08 untuk mengabaikan nilai-nilai tertentu dari list akhir. Dalam kasus ini, list comprehension menerima format berikut:

1
multiples = []
4

Contoh dasar comprehension jenis ini adalah untuk mendapatkan semua bilangan genap dari sejumlah angka. Sebuah loop

[<the_expression> for <the_element> in <the_iterable>]
98 untuk melakukan tugas ini akan terlihat seperti ini:

1
multiples = []
6
2
3
multiples = []
9
4
2
1
5
2
3
[<the_expression> for <the_element> in <the_iterable>]
1
2
5
[<the_expression> for <the_element> in <the_iterable>]
3
2
7
2
8
2
9

Hal yang sama bisa juga dicapai menggunakan list comprehension berikut:

1
3
1
2
3
2
7
4
2
9

Contoh penggunaan list comprehension yang lebih rumit adalah menambahkan ekspresi kondisional

1
10 di dalamnya.

Dalam kasus ini, urutan pernyataan dalam list comprehension akan sedikit berbeda dari kondisi

1
08 biasa. Hanya jika jika kamu memiliki kondisi
1
08, kondisi tersebut masuk ke akhir dari comprehension. Tapi, dalam kasus ekspresi
1
10, posisi loop
[<the_expression> for <the_element> in <the_iterable>]
98 dan ekspresi kondisional ditukar. Urutan barunya adalah sebagai berikut:

1
3
8

Kita mulai dengan menulis ekspresi kondisional

1
10 untuk mendapat kuadrat dari nilai genap dan pangkat tiga dari nilai ganjil dari sejumlah bilangan.

1
for n in range(1,16):
0
2
3
for n in range(1,16):
4
2
1
5
for n in range(1,16):
7
[<the_expression> for <the_element> in <the_iterable>]
1
for n in range(1,16):
9
[<the_expression> for <the_element> in <the_iterable>]
3
4
1
2
8
2
5
4
4
4
5
4
6
4
7

Ekspresi kondisional di atas memilki struktur berikut:

1
[<the_expression> for <the_element> in <the_iterable>]
6
2
    multiples.append(n*5)
1
3
    multiples.append(n*5)
3
4
for n in range(1,16):
9
5
    multiples.append(n*5)
7

Memasukkan nilai-nilai berikut di posisi yang benar akan memberimu list comprehension berikut:

1
    multiples.append(n*5)
9
2
3
4
5
4
4
7

List Comprehension dalam Loop Bersarang

Kamu juga bisa menggunakan nested loop dalam list comprehension. TIdak ada batasan jumlah loop

[<the_expression> for <the_element> in <the_iterable>]
98 yang bisa kamu simpan di dalam list comprehension. Tapi, kamu harus ingat urutan loop harus sama di kode awal dan di list comprehension. Kamu juga bisa menambahkan kondisi
1
08 tambahan setelah setiap loop
[<the_expression> for <the_element> in <the_iterable>]
98. Sebuah list comprehension dengan nested loop
[<the_expression> for <the_element> in <the_iterable>]
98 akan memiliki struktur berikut:

1
5
6
2
5
8
3
[<the_expression> for <the_element> in <the_iterable>]
00
4
[<the_expression> for <the_element> in <the_iterable>]
02

Contoh berikut seharusnya membuat semuanya menjadi lebih jelas. Terdapat dua nested loop, dan mengalikan keduanya menghasilkan tabel perkalian.

1
[<the_expression> for <the_element> in <the_iterable>]
04
2
3
[<the_expression> for <the_element> in <the_iterable>]
07
4
[<the_expression> for <the_element> in <the_iterable>]
09
5
[<the_expression> for <the_element> in <the_iterable>]
11
[<the_expression> for <the_element> in <the_iterable>]
1
[<the_expression> for <the_element> in <the_iterable>]
3
[<the_expression> for <the_element> in <the_iterable>]
14
2
8
[<the_expression> for <the_element> in <the_iterable>]
16

Nested loop

[<the_expression> for <the_element> in <the_iterable>]
98 tersebut bisa ditulis ulang sebagai:

1
[<the_expression> for <the_element> in <the_iterable>]
18
2
[<the_expression> for <the_element> in <the_iterable>]
20
3
    multiples.append(n*5)
3

Begitu kamu membuat loop dalam format ini, mengubahnya menjadi list comprehension mudah:

1
[<the_expression> for <the_element> in <the_iterable>]
24
2
3
[<the_expression> for <the_element> in <the_iterable>]
14
4
[<the_expression> for <the_element> in <the_iterable>]
29

Kamu juga bisa menggunakan list comprehension yang serupa untuk meratakan list dari list. Loop

[<the_expression> for <the_element> in <the_iterable>]
98 luar mengiterasi masing-masing list dan menyimpannya dalam variabel
1
22. Loop
[<the_expression> for <the_element> in <the_iterable>]
98 bagian dalam akan mengiterasi semua elemen di
1
22 saat ini. Saat iterasi pertama, variabel
1
22 akan memiliki nilai
1
26. Loop kedua mengiterasi ke dalam list ini atau
1
22, dan menambahkan semua nilai tersebut ke list akhir.

1
[<the_expression> for <the_element> in <the_iterable>]
31
2
[<the_expression> for <the_element> in <the_iterable>]
33
3
[<the_expression> for <the_element> in <the_iterable>]
35
4
[<the_expression> for <the_element> in <the_iterable>]
37
5
[<the_expression> for <the_element> in <the_iterable>]
39
[<the_expression> for <the_element> in <the_iterable>]
1
[<the_expression> for <the_element> in <the_iterable>]
3
[<the_expression> for <the_element> in <the_iterable>]
42
2
8
4
4
[<the_expression> for <the_element> in <the_iterable>]
45
4
6
[<the_expression> for <the_element> in <the_iterable>]
47

Nested List Comprehension

Nested list comprehension mungkin terdengar mirip dengan list comprehension dengan nested loop, tapi sebenarnya sangat bebeda. Pada kasus pertama, kamu menangani loop di dalam loop. Dalam kasus ini, kamu akan menangani list comprehension di dalam list comprehension. Contoh penggunaan nested list comprehension yang baik misalnya membuat transpose dari matriks dari bagian sebelumnya.

Tanpa ekspresi list comprehension, kamu akan perlu menggunakan dua loop

[<the_expression> for <the_element> in <the_iterable>]
98 untuk membuat transpose tersebut.

1
[<the_expression> for <the_element> in <the_iterable>]
31
2
[<the_expression> for <the_element> in <the_iterable>]
33
3
[<the_expression> for <the_element> in <the_iterable>]
35
4
[<the_expression> for <the_element> in <the_iterable>]
37
5
[<the_expression> for <the_element> in <the_iterable>]
39
[<the_expression> for <the_element> in <the_iterable>]
1
[<the_expression> for <the_element> in <the_iterable>]
3
[<the_expression> for <the_element> in <the_iterable>]
60
2
8
4
4
[<the_expression> for <the_element> in <the_iterable>]
63
4
6
[<the_expression> for <the_element> in <the_iterable>]
65
[<the_expression> for <the_element> in <the_iterable>]
66
[<the_expression> for <the_element> in <the_iterable>]
67
[<the_expression> for <the_element> in <the_iterable>]
68
[<the_expression> for <the_element> in <the_iterable>]
69
[<the_expression> for <the_element> in <the_iterable>]
70
[<the_expression> for <the_element> in <the_iterable>]
71
[<the_expression> for <the_element> in <the_iterable>]
72
[<the_expression> for <the_element> in <the_iterable>]
0
[<the_expression> for <the_element> in <the_iterable>]
74
[<the_expression> for <the_element> in <the_iterable>]
75
[<the_expression> for <the_element> in <the_iterable>]
76
[<the_expression> for <the_element> in <the_iterable>]
77

Loop luar mengiterasi ke dalam matriks empat kali karena ada empat kolom di dalamnya. Loop dalam mengiterasi elemen di dalam baris saat ini untuk tiap indeks dan menambahkannya ke list sementara bernama

1
29. List
1
29 lalu ditambahkan sebagai baris di matriks yang ditranspose. Dalam kasus nested list comprehension, loop terluar ada di akhir dan loop paling dalam ada di awal.

Berikut adalah kode di atas dalam format list comprehension.

1
[<the_expression> for <the_element> in <the_iterable>]
31
2
[<the_expression> for <the_element> in <the_iterable>]
33
3
[<the_expression> for <the_element> in <the_iterable>]
35
4
[<the_expression> for <the_element> in <the_iterable>]
37
5
[<the_expression> for <the_element> in <the_iterable>]
39
[<the_expression> for <the_element> in <the_iterable>]
1
[<the_expression> for <the_element> in <the_iterable>]
3
[<the_expression> for <the_element> in <the_iterable>]
90
2
8
4
4
[<the_expression> for <the_element> in <the_iterable>]
75
4
6
[<the_expression> for <the_element> in <the_iterable>]
77

Cara lain untuk melihat ini adalah dengan mempertimbangkan struktur list comprehension yang menggantikan loop

[<the_expression> for <the_element> in <the_iterable>]
98 yang kamu pelajari di awal artikel.

1
[<the_expression> for <the_element> in <the_iterable>]

Jika kamu bandingkan dengan nested list comprehension di atas, kamu akan lihat bahwa

1
06 dlaam kasus ini adalah list comprehension lain:
1
33. Nested list comprehension ini sendiri menggunakan format loop
[<the_expression> for <the_element> in <the_iterable>]
98 dasar.

Penutup

Saya harap tutorial ini membantu kamu mengerti apa list comprehension dan bagaimana menggunakannya untuk menggantikan loop

[<the_expression> for <the_element> in <the_iterable>]
98 dasar untuk menulis kode yang lebih rapi dan sambil membuat list.

Hal lain yang perlu kamu ingat adalah seberapa mudah dibaca kodemu. Membuat list comprehension untuk nested loop mungkin akan membuat kode tersebut lebih sulit dibaca. Dalam kasus tersebut, kamu bisa membagi list comprehension menjadi beberapa baris untuk membuatnya lebih mudah dibaca.