count ve cycle
- Python kursu
- Orta seviye
- Ders 95/116
- 5 dk
count ve cycle ile sonsuz yineleyicileri öğrenirsin.
count ve cycle
count(start, step) sonsuz artan sayılar üretir; cycle(iterable) bir yinelenebilir nesneyi sonsuz kez tekrarlar. İkisi de sonsuz yineleyici'dir; dikkatli kullanılmazsa sonsuz döngüye yol açar.
Örnek: count(10, 2) çağrısı 10, 12, 14, 16, ... üretir. cycle("AB") çağrısı A, B, A, B, ... üretir. Bunları islice ya da zip ile sınırlamak gerekir; yoksa yineleme hiç bitmez.
Sınırlama olmadan kullanma
Sonsuz yineleyicılarda for c in count(1): yazarsan program asla durmaz. Bu yüzden islice ya da zip ile bir sınır koyarsın. zip en kısa yinelenebilir bittiğinde durur; bu özellik sayesinde sonsuz yineleyiciyı güvenle kullanabilirsin.
Örnek: list(zip(count(1), ["a", "b"])) çağrısı [(1, 'a'), (2, 'b')] döner. İkinci liste iki öğeli olduğu için count da iki öğe üretir ve durur. Bu, numaralandırma benzeri işler için pratik bir yöntemdir.
Uygulama cycle ve islice kullan
from itertools import cycle, islice ile başla. c = cycle([1, 2]) ile bir cycle oluştur. result = list(islice(c, 5)) ile ilk beş öğeyi al. Sonra print(result) ile yazdır.
Başlangıç kodu
# cycle ve islice ile sınırlı yinelemeÖrnek çözüm
# cycle ve islice ile sınırlı yineleme
from itertools import cycle, islice
c = cycle([1, 2])
result = list(islice(c, 5))
print(result)Beklenen çıktı
[1, 2, 1, 2, 1]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 count import satırı
from itertools import count, ____
for i in zip(count(1), ["a", "b"]):
print(i)
from itertools import count, cycle
for i in zip(count(1), ["a", "b"]):
print(i)
Açıklama: cycle de itertools modülündedir.
2 count(1) ne zaman durur?
- Hiçbir zaman
- 100'de
- Bir veri bittiğinde
- Sınırlayıcı ile Doğru cevap
Açıklama: count ancak islice ya da zip gibi bir sınırlayıcı ile durur.
3 Sonsuz yineleyici eşleştir
| Kavram | Anlamı |
|---|---|
count |
Sonsuz sayı |
cycle |
Sonsuz tekrar |
islice |
Sınırlayıcı |
zip |
En kısa biter |