- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
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.
En yaygın kullanılanıdır. Yeni koleksiyon köşeli parantezler ([]) içine yazılır ve sonuçta bir liste elde edilir.
yeni_liste = [ ifade for eleman in yinelenebilir if koşul ]
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]
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.
yeni_sozluk={ anahtar_ifadesi: deger_ifadesi for eleman in yinelenebilir }
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}
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'}
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.
| Özellik | Liste Anlayışı ([]) | Generator İfadesi (()) |
| Koleksiyon Tipi | Tamamlanmış Liste | Yineleyici (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ı: 0Comprehension'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.
🔥 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
Yorum Gönder