Python - Pemahaman Daftar
Daftar Pemahaman
Pemahaman daftar menawarkan sintaks yang lebih pendek saat Anda ingin membuat daftar baru berdasarkan nilai dari daftar yang sudah ada.
Contoh:
Berdasarkan daftar buah-buahan, Anda menginginkan daftar baru, yang hanya berisi buah-buahan dengan huruf "a" pada namanya.
Tanpa pemahaman daftar, Anda harus menulis for
pernyataan dengan tes bersyarat di dalamnya:
Contoh
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []
for x in fruits:
if "a" in x:
newlist.append(x)
print(newlist)
Dengan pemahaman daftar, Anda dapat melakukan semua itu hanya dengan satu baris kode:
Contoh
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x
for x in fruits if "a" in x]
print(newlist)
Sintaks
newlist = [expression for item in iterable if condition == True]
Nilai yang dikembalikan adalah daftar baru, membiarkan daftar lama tidak berubah.
Kondisi
Kondisinya seperti filter yang hanya menerima item yang bernilai
True
.
Contoh
Hanya terima item yang bukan "apel":
newlist = [x for x in fruits if x != "apple"]
Kondisi
if x != "apple"
akan kembali True
untuk semua elemen selain "apel", membuat daftar baru berisi semua buah kecuali "apel".
Kondisi ini opsional dan dapat dihilangkan:
Contoh
Tanpa if
pernyataan:
newlist = [x for x in fruits]
dapat diubah
Iterable dapat berupa objek apa pun yang dapat diubah, seperti daftar, Tuple, set, dll .
Contoh
Anda dapat menggunakan range()
fungsi untuk membuat iterable:
newlist = [x for x in range(10)]
Contoh yang sama, tetapi dengan syarat:
Contoh
Terima hanya angka yang lebih rendah dari 5:
newlist = [x for x in range(10) if x < 5]
Ekspresi
Ekspresi adalah item saat ini dalam iterasi, tetapi juga merupakan hasil, yang dapat Anda manipulasi sebelum berakhir seperti item daftar dalam daftar baru:
Contoh
Setel nilai dalam daftar baru ke huruf besar:
newlist = [x.upper()
for x in fruits]
Anda dapat mengatur hasilnya ke apa pun yang Anda suka:
Contoh
Setel semua nilai dalam daftar baru ke 'halo':
newlist = ['hello' for x in fruits]
Ekspresi juga dapat berisi kondisi , tidak seperti filter, tetapi sebagai cara untuk memanipulasi hasil:
Contoh
Kembalikan "oranye" alih-alih "pisang":
newlist = [x if x != "banana" else "orange"
for x in fruits]
Ungkapan dalam contoh di atas mengatakan:
"Kembalikan barang jika bukan pisang, jika pisang kembalikan jeruk".