Python List Comprehension


List Comprehension

List Comprehension menawarkan sintaks yang lebih pendek saat kalian ingin membuat list baru berdasarkan nilai dari list yang ada.

Contoh:

Berdasarkan daftar buah-buahan, kalian menginginkan list baru, yang hanya berisi buah-buahan dengan huruf "a" di namanya.

Tanpa list comprehension kalian harus menulis pernyataanfordengan 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 list comprehension, kalian 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)

The Syntax

newlist = [expression for item in iterable if condition == True]

Nilai yang dikembalikan adalah list baru, membiarkan list lama tidak berubah.


Condition

Condition itu seperti filter yang hanya menerima item yang bernilaiTrue.

Contoh

Hanya terima item yang bukan "apel":

newlist = [x for x in fruits if x != "apple"]

Kondisi if x != "apple" akan mengembalikanTrueuntuk semua elemen kecuali "apple", membuat list baru yang berisi semua buah-buahan kecuali "apple".

Condition itu opsional dan dapat dihilangkan:

Contoh

Tanpa statementif:

newlist = [x for x in fruits]

Iterable

Iterable dapat berupa objek iterable apa saja, seperti list, tuple, set, dll.

Contoh

Kalian bisa menggunakan fungsirange()untuk membuat sebuah perulangan:

newlist = [x for x in range(10)]

Contoh yang sama, namun dengan kondisi:

Contoh

Terima hanya angka yang lebih rendah dari 5:

newlist = [x for x in range(10) if x < 5]

Expression

Ekspresi adalah item saat ini dalam iterasi, tetapi juga merupakan hasil, yang dapat kalian manipulasi sebelum berakhir seperti item list di list baru:

Contoh

Tetapkan nilai dari newlist menjadi huruf kapital:

newlist = [x.upper() for x in fruits]

Kalian dapat mengatur hasilnya sesuai keinginan kalian:

Contoh

Tetapkan semua nilai dalam newlist menjadi 'hello':

newlist = ["hello" for x in fruits]

Ekspresi juga dapat berisi kondisi, tidak seperti filter, tetapi sebagai cara untuk memanipulasi hasil:

Contoh

Mengembalikan "orange" bukan "banana":

newlist = [x if x != "banana" else "orange" for x in fruits]

Ekspresi dalam contoh di atas mengatakan:

"Mengembalikan item jika bukan banana, jika banana maka akan mengembalikan orange".