Middle
Wat zijn iterators en generators in Python en wat is het verschil tussen hen?
sobes.tech AI
Antwoord van AI
Een iterator in Python is een object dat de methoden __iter__() en __next__() implementeert. Het stelt je in staat om de elementen van een collectie sequentieel te doorlopen zonder alle gegevens meteen in het geheugen te laden.
Een generator is een speciaal soort iterator die wordt gemaakt met behulp van functies met het sleutelwoord yield of generatorexpressies. Generators berekenen waarden lui op basis van behoefte, wat geheugen bespaart en het mogelijk maakt om met potentieel oneindige reeksen te werken.
Belangrijkste verschillen:
- Een iterator is een algemene interface voor het sequentieel doorlopen van elementen.
- Een generator is een handige manier om iterators te maken met
yield.
Voorbeeld van een generator:
def count_up_to(n):
count = 1
while count <= n:
yield count
count += 1
for number in count_up_to(5):
print(number)
Hier is count_up_to een generator die getallen van 1 tot n één voor één teruggeeft.