List comprehension python menawarkan syntax yang lebih pendek saat Anda ingin membuat list baru berdasarkan nilai dari list yang sudah ada.
Contoh:
Berdasarkan list buah-buahan, Anda menginginkan list baru yang hanya berisi buah-buahan dengan huruf “a” pada namanya.
Tanpa menggunakan list comprehension, Anda harus menulis perulangan for
dengan kondisi di dalamnya:
buah = ["apel", "pisang", "ceri", "kiwi", "mangga"]
listbaru = []
for x in buah:
if "a" in x:
listbaru.append(x)
print(listbaru)
Output:
['apel', 'pisang', 'mangga']
Dengan menggunakan list comprehension, Anda dapat melakukan semua itu hanya dengan satu baris kode.
Contoh:
buah = ["apel", "pisang", "ceri", "kiwi", "mangga"]
listbaru = [x for x in buah if "a" in x]
print(listbaru)
Output:
['apel', 'pisang', 'mangga']
Syntax
listbaru = [expression for item in iterable if condition == True]
Nilai yang dikembalikan adalah list baru, list lama tidak akan berubah.
Condition (Kondisi)
Kondisi adalah filter yang hanya menerima item yang bernilaiTrue
.
Contoh:
buah = ["apel", "pisang", "ceri", "kiwi", "mangga"]
listbaru = [x for x in buah if x != "apel"]
print(listbaru)
Output:
['pisang', 'ceri', 'kiwi', 'mangga']
Kondisi if x != “apel” akan mengembalikan nilaiTrue
untuk semua elemen selain “apel”, membuat list baru berisi semua buah kecuali “apel”.
Kondisi ini opsional dan dapat dihilangkan.
Contoh:
buah = ["apel", "pisang", "ceri", "kiwi", "mangga"]
listbaru = [x for x in buah]
print(listbaru)
Output:
['apel', 'pisang', 'ceri', 'kiwi', 'mangga']
Iterable
Iterable dapat berupa object iterable apa saja, seperti list, tuple, set, dll .
Contoh:
listbaru = [x for x in range(10) if x < 5]
print(listbaru)
Output:
[0, 1, 2, 3, 4]
Contoh yang sama, tetapi dengan syarat.
Contoh:
listbaru = [x for x in range(10) if x < 5]
print(listbaru)
Output:
[0, 1, 2, 3, 4]
Expression (Ekspresi)
Ekspresi adalah item saat ini dalam iterasi, tetapi juga merupakan hasil, item tersebut dapat Anda manipulasi dengan berbagai cara, seperti memanggil fungsi tertentu, sebelum dimasukkan ke dalam list baru.
Seperti contoh, Anda dapat memanggil fungsi upper() untuk mengubah item saat ini menjadi huruf besar.
Contoh:
buah = ["apel", "pisang", "ceri", "kiwi", "mangga"]
listbaru = [x.upper() for x in buah]
print(listbaru)
Output:
['APEL', 'PISANG', 'CERI', 'KIWI', 'MANGGA']
Anda dapat memberikan hasil ekspresi dalam bentuk lain.
Contoh:
buah = ["apel", "pisang", "ceri", "kiwi", "mangga"]
listbaru = ['halo' for x in buah]
print(listbaru)
Output:
['halo', 'halo', 'halo', 'halo', 'halo']
Ekspresi juga bisa berisi kondisi, tapi tidak berfungsi sebagai filter, tetapi sebagai kondisi untuk memanipulasi hasil.
Contoh:
buah = ["apel", "pisang", "ceri", "kiwi", "mangga"]
listbaru = [x if x != "pisang" else "jeruk" for x in buah]
print(listbaru)
Output:
['apel', 'jeruk', 'ceri', 'kiwi', 'mangga']
Ekspresi dalam contoh di atas mengatakan:
“Kembalikan semua item jika bukan pisang, jika pisang kembalikan jeruk”.
Tutorial sebelumnya : Mengakses Item List Dengan Looping
Tutorial setelahnya : Mengurutkan List Pada Python
Semua Tutorial Python : Tutorial Python