Middle
Kas ir iteratori un ģeneratori Python un kāda ir to atšķirība?
sobes.tech AI
Atbilde no AI
Iterators Python ir objektu, kas realizē metodes __iter__() un __next__(). Tas ļauj secīgi pārlūkot kolekcijas elementus, neuzkraujot visus datus uzreiz atmiņā.
Generator ir īpašs iteratora veids, kas izveidots ar funkcijām ar atslēgvārdu yield vai generatora izteiksmēm. Generatori gausa aprēķina vērtības pēc nepieciešamības, taupot atmiņu un ļaujot strādāt ar potenciāli bezgalīgām secībām.
Galvenās atšķirības:
- Iterator ir kopēja saskarne elementu secīgai pārlūkošanai.
- Generator ir ērts veids, kā izveidot iteratorus ar
yield.
Generatora piemērs:
def count_up_to(n):
count = 1
while count <= n:
yield count
count += 1
for number in count_up_to(5):
print(number)
Šeit count_up_to ir generator, kas atgriež skaitļus no 1 līdz n, pa vienam.