Middle
Co jsou iterátory a generátory v Pythonu a v čem je jejich rozdíl?
sobes.tech AI
Odpověď od AI
Iterátor v Pythonu je objekt, který implementuje metody __iter__() a __next__(). Umožňuje sekvenční procházení prvků kolekce bez nutnosti načíst všechna data najednou do paměti.
Generátor je speciální typ iterátoru, který se vytváří pomocí funkcí s klíčovým slovem yield nebo generátorových výrazů. Generátory lenivě počítají hodnoty podle potřeby, což šetří paměť a umožňuje pracovat s potenciálně nekonečnými sekvencemi.
Hlavní rozdíly:
- Iterátor je obecné rozhraní pro sekvenční průchod prvky.
- Generátor je pohodlný způsob, jak vytvářet iterátory pomocí
yield.
Příklad generátoru:
def count_up_to(n):
count = 1
while count <= n:
yield count
count += 1
for number in count_up_to(5):
print(number)
Zde je count_up_to generátor, který vrací čísla od 1 do n, jedno po druhém.