itertools: Sonsuz ve Sonlu Yineleyiciler
count, cycle, islice, chain ve zip_longest kullanın.
itertools: Sonsuz ve Sonlu Yineleyiciler, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.
itertools Nedir
itertools, bellek açısından verimli yineleyici yapı taşları sağlayan standart kitaplık modülüdür. Tüm işlevler liste değil, yineleyici döndürür.
import itertools
# count: infinite counter
for i in itertools.islice(itertools.count(10, 2), 5):
print(i, end=" ") # 10 12 14 16 18count()
count(start, step), sonsuz bir aritmetik dizi üretir. Bunu her zaman islice veya bir bitirme koşuluyla birlikte kullanın.
import itertools
for n in itertools.count(1, 10):
if n > 40:
break
print(n, end=" ") # 1 11 21 31 41cycle()
cycle(iterable), yinelemeli nesneyi sonsuza kadar tekrarlar.
import itertools
colors = itertools.cycle(["red","green","blue"])
for _ in range(7):
print(next(colors), end=" ")
# red green blue red green blue redrepeat()
repeat(value, times), aynı değeri times kez üretir (times belirtilmezse sonsuz kez).
import itertools
print(list(itertools.repeat(42, 4))) # [42, 42, 42, 42]
print(list(map(pow, range(5), itertools.repeat(2))))
# [0, 1, 4, 9, 16]islice()
islice(it, stop) veya islice(it, start, stop, step), yineleyiciyi bellekte somutlaştırmadan dilimler.
import itertools
result = list(itertools.islice(range(100), 2, 10, 2))
print(result) # [2, 4, 6, 8]chain()
chain(*iterables), birden çok yinelemeli nesneyi uç uca ekleyerek tek bir yineleyicide birleştirir.
import itertools
result = list(itertools.chain([1,2], [3,4], [5]))
print(result) # [1, 2, 3, 4, 5]
# chain.from_iterable for a list of iterables:
nested = [[1,2],[3,4]]
print(list(itertools.chain.from_iterable(nested)))zip_longest()
zip_longest, uzunlukları farklı yinelemeli nesneleri birleştirir ve eksik değerleri fillvalue ile doldurur.
import itertools
a = [1, 2, 3]
b = ["a", "b"]
print(list(itertools.zip_longest(a, b, fillvalue=0)))
# [(1, "a"), (2, "b"), (3, 0)]dropwhile() ve takewhile()
takewhile(pred, it), koşul doğru olduğu sürece öğeleri üretir. dropwhile bunun tersini yapar.
import itertools
nums = [1, 3, 5, 6, 7, 9]
print(list(itertools.takewhile(lambda x: x % 2, nums)))
# [1, 3, 5]
print(list(itertools.dropwhile(lambda x: x % 2, nums)))
# [6, 7, 9]filterfalse()
filterfalse(pred, it), koşulun False olduğu öğeleri üretir; bu, filter() işlevinin tümleyenidir.
import itertools
evens = list(itertools.filterfalse(lambda x: x%2, range(10)))
print(evens) # [0, 2, 4, 6, 8]starmap()
starmap(func, iterable), yinelemeli bir nesnedeki her bağımsız değişken demetine bir işlev uygular.
import itertools, operator
pairs = [(2,3),(4,5),(1,10)]
result = list(itertools.starmap(operator.mul, pairs))
print(result) # [6, 20, 10]groupby()
groupby(it, key), aynı anahtar değerine sahip ardışık öğeleri gruplar. Doğru gruplama için önce yinelemeli nesneyi sıralayın.
import itertools
data = sorted([("a",1),("b",2),("a",3)], key=lambda x:x[0])
for key, group in itertools.groupby(data, key=lambda x:x[0]):
print(key, list(group))Hızlı Kontrol
itertools.chain([1,2], [3,4]) ne üretir?
Özet
itertools, sonsuz yineleyiciler (count, cycle, repeat), dilimleme (islice), birleştirme (chain, zip_longest) ve filtreleme (takewhile, dropwhile, filterfalse) araçları sağlar. Bunların tümü tembel ve bellek açısından verimlidir.
Sıkça Sorulan Sorular
“itertools: Sonsuz ve Sonlu Yineleyiciler” dersi ücretsiz mi?
Evet — “itertools: Sonsuz ve Sonlu Yineleyiciler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.
“itertools: Sonsuz ve Sonlu Yineleyiciler” dersinde ne öğreneceğim?
count, cycle, islice, chain ve zip_longest kullanın. Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Python Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“itertools: Sonsuz ve Sonlu Yineleyiciler” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- itertools: Sonsuz ve Sonlu Yineleyiciler
- itertools: Kombinatorik
- functools: partial ve reduce
- functools: lru_cache ve cached_property