Python’un en sevilen özelliklerinden biri, birçok satırlık bir döngüyü tek, zarif bir satıra indirebilmesidir. Buna list comprehension denir ve öğrendiğinizde kodunuz hem kısalır hem de okunaklı hale gelir.
Klasik döngü vs comprehension
Sayıların karelerinden bir liste oluşturmak istediğinizi düşünün. Klasik yöntem birkaç satır sürerken, comprehension bunu tek satıra indirir:
# Klasik
kareler = []
for x in range(5):
kareler.append(x**2)
# Comprehension
kareler = [x**2 for x in range(5)]Koşullu comprehension
İçine bir koşul da ekleyebilirsiniz; örneğin yalnızca çift sayıları almak için:
ciftler = [x for x in range(10) if x % 2 == 0]
print(ciftler) # [0, 2, 4, 6, 8]Okunabilirlik dengesi
Comprehension güçlüdür ama abartılmamalıdır. İçine çok fazla koşul ve iç içe döngü sığdırmak, tek satırı okunmaz hale getirir. Kural şudur: basit dönüşümler için comprehension, karmaşık mantık için klasik döngü.
İşin hocası ne yapar?
İşin hocası comprehension’ı zarafeti için kullanır, gösteriş için değil. Kodun kısa olması değil, anlaşılır olması esastır. Kavram için list comprehension sayfasına bakabilirsiniz.
İlgili yazı: Python String Metotları
