List comprehension, Python'da bir listeyi tek satırda oluşturmanın şık yoludur. Döngü ile yapabileceğin işi daha kısa ve okunur biçimde yazarsın.
Klasik döngü yerine
# Döngü ile:
kareler = []
for n in range(5):
kareler.append(n * n)
# List comprehension ile (aynı sonuç):
kareler = [n * n for n in range(5)]
print(kareler) # [0, 1, 4, 9, 16]
Koşullu (filtreli)
sayilar = [1, 2, 3, 4, 5, 6]
ciftler = [n for n in sayilar if n % 2 == 0]
print(ciftler) # [2, 4, 6]
Dönüştürme + koşul birlikte
kelimeler = ['elma', 'muz', 'kivi']
buyuk = [k.upper() for k in kelimeler if len(k) > 3]
print(buyuk) # ['ELMA']
Yapı şudur: [ifade for eleman in dizi if koşul]. Çok karmaşık hale gelirse okunabilirlik için normal döngüye dönmek daha iyidir.