← Kembali ke kursus
Pelajaran kursus · Python
Pelajaran 12

List comprehension

Bangun list satu baris: [ekspresi for x in iterable if syarat].

Pahami konsepnya

List comprehension adalah sintaks ringkas Python untuk membangun list dari iterable. Bentuk dasar: [x * 2 for x in range(5)] menghasilkan [0, 2, 4, 6, 8]. Dengan filter: [x for x in range(20) if x % 3 == 0] memberi kelipatan 3. Bentuknya membaca seperti matematika — "x pangkat dua UNTUK x DI range(5) JIKA x genap".

Kuasainya bukan gaya-gayaan: comprehension LEBIH CEPAT daripada loop + append (Python mengoptimalkannya secara internal) dan lebih ringkas. Bila logikanya muat satu baris yang terbaca jelas, comprehension menang; bila butuh tiga baris atau ada side-effect, loop biasa lebih jernih.

Versi untuk struktur lain juga ada: {x**2 for x in range(5)} (set comprehension) dan {k: v for k, v in data} (dict comprehension). Prinsip sama, kurung berbeda.

Coba contoh kode

# dasar
kuadrat = [x**2 for x in range(1, 6)]
print(kuadrat)  # [1, 4, 9, 16, 25]

# dengan filter
genap = [x for x in range(20) if x % 2 == 0]
print(genap)

# transformasi string
nama = ["andi", "budi", "citra"]
kapital = [n.upper() for n in nama]
print(kapital)

# set comprehension
unik = {x % 3 for x in range(10)}
print(unik)  # {0, 1, 2}

Tiga bentuk sekaligus: transformasi murni (x**2), dengan filter (if genap), dan pada string. Set comprehension otomatis menghilangkan duplikat — x % 3 dari 0..9 hanya menghasilkan {0, 1, 2}.

Latihan singkat

Uji: kuadrat dari 1-5 yang genap — harus `[4, 16]`.