0Pricing
Python Academy · Ders

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 18

count()

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 41

cycle()

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 red

repeat()

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

  1. itertools: Sonsuz ve Sonlu Yineleyiciler
  2. itertools: Kombinatorik
  3. functools: partial ve reduce
  4. functools: lru_cache ve cached_property
← Python Academy Sayfasına Dön