Python Academy · Les

Iterators en iterables

Ontdek het iteratorprotocol voor het maken van aangepast iteratiegedrag

Les 5 van 511 stappen

Iterators en iterables is een gratis Python Academy-les op CoddyKit. Dit is les 5 van 5. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Python Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Python Academy bevat in totaal 5 lessen.

Inleiding tot iterators en itereerbare objecten

Iterators en itereerbare objecten zijn fundamentele concepten in Python waarmee je met gegevensreeksen kunt werken. Ze vormen de basis van lussen, comprehensies en generatoren.

In deze les leer je hoe iterators en itereerbare objecten werken en hoe je je eigen iterators maakt.

Iterators en iterables — illustratie 1

Wat is een itereerbaar object?

Een itereerbaar object is elk object in Python waarover je met een for-lus kunt lussen. Voorbeelden zijn lijsten, tupels, verzamelingen en woordenboeken.

# Example of an iterable
my_list = [1, 2, 3]
for item in my_list:
    print(item)  # Outputs: 1, 2, 3

Wat is een iterator?

Een iterator is een object dat een gegevensstroom voorstelt. Het implementeert de methoden __iter__() en __next__().

# Example of an iterator
my_list = [1, 2, 3]
iterator = iter(my_list)
print(next(iterator))  # Outputs: 1
print(next(iterator))  # Outputs: 2
print(next(iterator))  # Outputs: 3

Het verschil tussen itereerbare objecten en iterators

Over itereerbare objecten kun je lussen, zoals over lijsten, terwijl iterators met de methode next() telkens één element opleveren. Een itereerbaar object wordt een iterator wanneer je het doorgeeft aan de functie iter().

Aangepaste iterators maken

Je kunt aangepaste iterators maken door een klasse te definiëren met de methoden __iter__() en __next__():

# Custom iterator example
class Counter:
    def __init__(self, start, end):
        self.current = start
        self.end = end

    def __iter__(self):
        return self

    def __next__(self):
        if self.current > self.end:
            raise StopIteration
        self.current += 1
        return self.current - 1

counter = Counter(1, 5)
for number in counter:
    print(number)  # Outputs: 1, 2, 3, 4, 5

De functie <code>iter()</code> gebruiken

De functie iter() retourneert een iteratorobject uit een itereerbaar object:

# Using iter() on a list
my_list = [1, 2, 3]
iterator = iter(my_list)
print(next(iterator))  # Outputs: 1

<code>StopIteration</code> afhandelen

Wanneer een iterator is uitgeput, genereert deze een uitzondering van het type StopIteration. Zo geeft Python het einde van een reeks aan.

# Handling StopIteration
my_list = [1, 2, 3]
iterator = iter(my_list)

while True:
    try:
        print(next(iterator))
    except StopIteration:
        break

Iterators versus generatoren

Generatoren zijn een eenvoudigere manier om iterators te maken. Ze implementeren automatisch de methoden __iter__() en __next__().

# Example of a generator as an iterator
def my_generator():
    yield 1
    yield 2
    yield 3

for value in my_generator():
    print(value)  # Outputs: 1, 2, 3

Veelvoorkomende fouten met iterators

Dit zijn enkele fouten die je moet vermijden:

  • Vergeten om __iter__() en __next__() te implementeren in aangepaste iterators.
  • Uitzonderingen van het type StopIteration niet correct afhandelen.
  • Iterators en itereerbare objecten door elkaar halen.

Wat hebben we geleerd?

In deze les heb je geleerd:

  • Wat het verschil is tussen itereerbare objecten en iterators.
  • Hoe je __iter__() en __next__() gebruikt om aangepaste iterators te maken.
  • Hoe je de functie iter() gebruikt en uitzonderingen van het type StopIteration afhandelt.
  • Hoe generatoren het maken van iterators vereenvoudigen.

Goed gedaan! Laten we doorgaan naar het volgende onderwerp.

Iterators en iterables — illustratie 11
Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
76
Lessen
320

Veelgestelde vragen

Is de les “Iterators en iterables” gratis?

Ja — de volledige tekst van “Iterators en iterables” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Python Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Python Academy bevat in totaal 5 lessen.

Wat leer ik in “Iterators en iterables”?

Ontdek het iteratorprotocol voor het maken van aangepast iteratiegedrag Je oefent met Python Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Python Academy te beginnen?

Ervaring vooraf is niet nodig. Python Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 5 van 5.

Hoe lang duurt de les “Iterators en iterables”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Python Academy?

Ja. Elke les over Python Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Decorators
  2. Generators
  3. Contextmanagers (with-instructies)
  4. Comprehensions (lijst, set en woordenboek)
  5. Iterators en iterables
← Terug naar Python Academy