Generator katmanı
- Python kursu
- Orta seviye
- Ders 114/116
- 6 dk
Generator ve itertools ile veri akışı kurarsın.
Generator katmanı: yield ile üret
Bu derste uret generator fonksiyonunu yazacaksın. Bu fonksiyon kelimeleri yield ile tek tek üretir:
def uret(words):
for w in words:
yield w
for w in uret(words):
print(w)Başlangıç kodu önceki çözümleri içerir. Sen uret fonksiyonunu ve for döngüsünü ekleyeceksin. Generator, tüm listeyi belleğe yüklemeden tek tek değer üretir.
Bu, büyük verilerde bellek tasarrufu sağlar.
Uygulama üret generator'ını yaz ve tüket
def uret(words): tanımla, gövdesinde for w in words: yield w yaz. Sonra for w in uret(words): print(w) yaz.
Başlangıç kodu
# Kelime işleme - kelime listesi
words = ["elma", "armut", "elma"]
print(len(words))
def say(words):
return len(set(words))
print(say(words))
# uret generator'ını yaz ve tüketÖrnek çözüm
words = ["elma", "armut", "elma"]
print(len(words))
def say(words):
return len(set(words))
print(say(words))
def uret(words):
for w in words:
yield w
for w in uret(words):
print(w)Beklenen çıktı
3 2 elma armut elma
Sıradaki adım: dosya I/O
Generator katmanı hazır — kelimeleri tek tek üretebiliyorsun. Sonraki derste dosya I/O katmanı ekleyeceksin: with ile dosya benzeri nesneden okuma. Bu katman, dosyalardan veri okumanın güvenli yolunu gösterecek.
with deyimi kaynağı açar ve blok sonunda otomatik kapatır; böylece kaynak sızıntısı önlenir. Gerçek dosya işlemlerinin temelidir.
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 yield ne yapar?
- Döngüyü kırar
- Hata fırlatır
- Değer döndürür ve durur Doğru cevap
- Değişken siler
Açıklama: yield değer üretir ve fonksiyonu duraklatır; bir sonraki çağrıda devam eder.
2 Generator eşleştir
| Kavram | Anlamı |
|---|---|
def üret |
Generator fonksiyon |
yield |
Değer üretir |
for w in üret |
Tüketim |
words |
Kaynak veri |
3 yield anahtar sözcüğünü tamamla
def uret(words):
for w in words:
____
def uret(words):
for w in words:
yield w
Açıklama: yield w w değerini üretir ve duraklatır.