Resim

Comprehension

Comprehension'lar: Verimli Koleksiyon Oluşturma

Giriş: Pythonic Tek Satırlık Koleksiyonlar

Comprehension'lar (Anlayışlar), Python'da mevcut bir yinelenebilir nesneden (iterable) yola çıkarak tek bir satırda yeni bir koleksiyon (Liste, Sözlük, Küme veya Generator) oluşturmanın en hızlı ve en okunur yoludur.

Temel olarak, uzun for döngülerini ve .append() çağrılarını ortadan kaldırarak kodu sadeleştirir.

1. Liste Anlayışları (List Comprehensions)

En yaygın kullanılanıdır. Yeni koleksiyon köşeli parantezler ([]) içine yazılır ve sonuçta bir liste elde edilir.

Söz Dizimi

yeni_liste = [ ifade for eleman in yinelenebilir if koşul ]

  • Örnek: Sadece tek sayıların karesini alma

sayilar = [1, 2, 3, 4, 5]
tek_sayi_kareleri = [s * s for s in sayilar if s % 2 != 0]

# tek_sayi_kareleri: [1, 9, 25]

Kendiniz Deneyebilirsiniz:

2. Sözlük Anlayışları (Dictionary Comprehensions)

Anahtar-değer çiftlerinden oluşan sözlükler oluşturmak için kullanılır. Süslü parantezler ({}) içine yazılır ve ifade anahtar: değer formatında olmalıdır.

Söz Dizimi

yeni_sozluk={ anahtar_ifadesi: deger_ifadesi for eleman in yinelenebilir }

  • Örnek: Listeden sözlüğe çevirme ve değeri işleme

urunler = ['TV', 'Laptop', 'Klavye']
fiyatlar = [5000, 12000, 500]

# Ürün adlarını anahtar, fiyatı %10 artırılmış değer yap
fiyat_guncel={urun:fiyat*1.10 for urun,fiyat in zip(urunler,fiyatlar)}

# fiyat_guncelleme: {'TV': 5500.0, 'Laptop': 13200.0, 'Klavye': 550.0}

Kendiniz Deneyebilirsiniz:

3. Küme Anlayışları (Set Comprehensions)

Yine süslü parantezler ({}) içine yazılır, ancak sadece tek bir değer (anahtar-değer çifti değil) içerir. En büyük özelliği, sonucun otomatik olarak benzersiz (unique) öğelerden oluşan bir küme olmasıdır.

  • Örnek: Bir dizedeki benzersiz harfleri bulma

cumle = "merhaba dunya"
benzersiz_harfler = {harf for harf in cumle if harf != ' '}

#benzersiz_harfler: {'m', 'e', 'r', 'h', 'a', 'b', 'd', 'u', 'n', 'y'}

Kendiniz Deneyebilirsiniz:

4. Generator İfadeleri (Generator Expressions)

Liste, Sözlük veya Küme Anlayışlarından farklı olarak, bu ifade parantezler (()) içine yazılır ve sonuçta bir liste değil, Generator (Üreteç) Nesnesi döndürülür.

Bellek Verimliliği Farkı

ÖzellikListe Anlayışı ([])Generator İfadesi (())
Koleksiyon TipiTamamlanmış ListeYineleyici (Iterator)
Bellek KullanımıTüm öğeleri hemen belleğe yükler.Değerleri talep üzerine birer birer üretir (Lazy/Tembel).
  • Örnek: Bir milyon sayının karesini hesaplamak

# Liste Anlayışı: RAM'i doldurur
# buyuk_liste = [x*x for x in range(1_000_000)] 

# Generator İfadesi: Bellek dostudur
generator_ifadesi = (x*x for x in range(1_000_000)) 

# Değerlere ancak next() çağrıldığında veya döngüde erişilir.
ilk_kare = next(generator_ifadesi) 
print(ilk_kare) # Çıktı: 0

Comprehension'lar, Python'da verimli ve temiz kod yazmanın altın standardıdır. Tek bir ifadeyle büyük veri dönüşümlerini, filtrelemeleri ve eşleştirmeleri yapmanıza olanak tanır. Özellikle bellek verimliliği gerektiren durumlarda, Generator İfadelerini tercih etmek akıllıca bir seçimdir.

Kendiniz Deneyebilirsiniz:

🔥 Python Kariyerinizi Hemen Başlatın!

Hemen kursumuza kaydolun ve bu güçlü araçları kullanarak profesyonel Python geliştiricisi olma yolunda ilk adımı atın. Kursumuzdaki uygulamalı modüller, sizi sadece bir yazılımcı adayı değil, hazır bir profesyonel haline getirecek. Python Eğitimini Udemy platformunda bulabilirsiniz.

[ Python Eğitimi Sıfırdan İleri Seviye ]

Tıklayın ve Python Eğitimine Hemen Kaydolun!

Yorumlar

Bu blogdaki popüler yayınlar

Python random Modülü

Python print()

Yazılım Nedir?