Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Python-Iterables: Inzicht in Sequenties en Datastructuren | Beheersing van Iterators en Generators in Python
Python Structureel Programmeren

bookPython-Iterables: Inzicht in Sequenties en Datastructuren

Wat zijn iterables?

In Python zijn iterables objecten die doorlopen of herhaald kunnen worden, waarbij hun elementen één voor één worden teruggegeven. Dit vermogen om telkens één element te produceren maakt ze onmisbaar bij taken zoals lussen, comprehensions en uitpakken.

Enkele veelvoorkomende iterables zijn:

  • Datastructuren: lijsten, tuples, dictionaries, sets;
  • Strings: leveren hun karakters één voor één;
  • Aangepaste objecten: worden iterable door de __iter__-methode te implementeren.

Een belangrijk kenmerk van iterables is dat ze niet vanzelf hun positie tijdens het doorlopen "onthouden". Om hun elementen daadwerkelijk te doorlopen, hebben ze een iterator nodig.

1234567
numbers = [1, 2, 3, 4] for num in numbers: print(num) title = "codefinity" for char in title: print(char)
copy

De for-lus doorloopt automatisch de elementen van de iterable en verwerkt ze één voor één.

Wanneer Python een iterable verwerkt, wordt het object omgezet in een iterator met behulp van de iter()-functie. Intern roept iter() de __iter__()-methode van het object aan. Op vergelijkbare wijze haalt de next()-functie de volgende waarde uit de iterator door zijn __next__()-methode aan te roepen.

Hier volgt een voorbeeld dat laat zien hoe dit werkt:

12345678910
numbers = [1, 2, 3, 4] # Converting the list to an iterator numbers_iterator = iter(numbers) # Accessing elements one at a time using `next()` print(next(numbers_iterator)) # Output: 1 print(next(numbers_iterator)) # Output: 2 print(next(numbers_iterator)) # Output: 3 print(next(numbers_iterator)) # Output: 4 print(next(numbers_iterator)) # Output: StopIteration
copy

Iterabelen versus Iteratoren

Hoewel alle iteratoren iterabelen zijn, zijn niet alle iterabelen iteratoren. Een iterator onthoudt zijn positie tijdens het doorlopen en biedt toegang tot elementen achtereenvolgens totdat het einde is bereikt.

Beperking van iterabelen

Bij het werken met grote datasets kan het opslaan van alle elementen in een iterabele zoals een lijst inefficiënt zijn. Als de getallenreeks bijvoorbeeld dynamisch wordt gegenereerd of te groot is om in het geheugen te passen, is het noodzakelijk om elementen op aanvraag te verwerken. Dit is waar iteratoren (behandeld in het volgende hoofdstuk) en luie evaluatie (later geïntroduceerd) essentieel worden.

Taak

Swipe to start coding

Schrijf een Python-script om het gooien van een geschudde zeszijdige dobbelsteen te simuleren met behulp van iterators. Vul de ontbrekende delen van de code aan om een iterator te maken, elementen op te halen met next(), en het einde van de iteratie netjes af te handelen.

  1. Een lijst [1, 2, 3, 4, 5, 6] stelt de zijden van een dobbelsteen voor. De lijst is al geschud met random.shuffle().
  2. Zet de geschudde lijst om in een iterator zodat je de elementen één voor één kunt doorlopen.
  3. Gebruik de functie next() om het gooien van de dobbelsteen te simuleren en print elke zijde totdat alle zijden zijn gebruikt.
  4. Wanneer de iterator is uitgeput, handel dan de StopIteration-uitzondering af om aan te geven dat alle worpen voltooid zijn.

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 6. Hoofdstuk 1
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

close

bookPython-Iterables: Inzicht in Sequenties en Datastructuren

Veeg om het menu te tonen

Wat zijn iterables?

In Python zijn iterables objecten die doorlopen of herhaald kunnen worden, waarbij hun elementen één voor één worden teruggegeven. Dit vermogen om telkens één element te produceren maakt ze onmisbaar bij taken zoals lussen, comprehensions en uitpakken.

Enkele veelvoorkomende iterables zijn:

  • Datastructuren: lijsten, tuples, dictionaries, sets;
  • Strings: leveren hun karakters één voor één;
  • Aangepaste objecten: worden iterable door de __iter__-methode te implementeren.

Een belangrijk kenmerk van iterables is dat ze niet vanzelf hun positie tijdens het doorlopen "onthouden". Om hun elementen daadwerkelijk te doorlopen, hebben ze een iterator nodig.

1234567
numbers = [1, 2, 3, 4] for num in numbers: print(num) title = "codefinity" for char in title: print(char)
copy

De for-lus doorloopt automatisch de elementen van de iterable en verwerkt ze één voor één.

Wanneer Python een iterable verwerkt, wordt het object omgezet in een iterator met behulp van de iter()-functie. Intern roept iter() de __iter__()-methode van het object aan. Op vergelijkbare wijze haalt de next()-functie de volgende waarde uit de iterator door zijn __next__()-methode aan te roepen.

Hier volgt een voorbeeld dat laat zien hoe dit werkt:

12345678910
numbers = [1, 2, 3, 4] # Converting the list to an iterator numbers_iterator = iter(numbers) # Accessing elements one at a time using `next()` print(next(numbers_iterator)) # Output: 1 print(next(numbers_iterator)) # Output: 2 print(next(numbers_iterator)) # Output: 3 print(next(numbers_iterator)) # Output: 4 print(next(numbers_iterator)) # Output: StopIteration
copy

Iterabelen versus Iteratoren

Hoewel alle iteratoren iterabelen zijn, zijn niet alle iterabelen iteratoren. Een iterator onthoudt zijn positie tijdens het doorlopen en biedt toegang tot elementen achtereenvolgens totdat het einde is bereikt.

Beperking van iterabelen

Bij het werken met grote datasets kan het opslaan van alle elementen in een iterabele zoals een lijst inefficiënt zijn. Als de getallenreeks bijvoorbeeld dynamisch wordt gegenereerd of te groot is om in het geheugen te passen, is het noodzakelijk om elementen op aanvraag te verwerken. Dit is waar iteratoren (behandeld in het volgende hoofdstuk) en luie evaluatie (later geïntroduceerd) essentieel worden.

Taak

Swipe to start coding

Schrijf een Python-script om het gooien van een geschudde zeszijdige dobbelsteen te simuleren met behulp van iterators. Vul de ontbrekende delen van de code aan om een iterator te maken, elementen op te halen met next(), en het einde van de iteratie netjes af te handelen.

  1. Een lijst [1, 2, 3, 4, 5, 6] stelt de zijden van een dobbelsteen voor. De lijst is al geschud met random.shuffle().
  2. Zet de geschudde lijst om in een iterator zodat je de elementen één voor één kunt doorlopen.
  3. Gebruik de functie next() om het gooien van de dobbelsteen te simuleren en print elke zijde totdat alle zijden zijn gebruikt.
  4. Wanneer de iterator is uitgeput, handel dan de StopIteration-uitzondering af om aan te geven dat alle worpen voltooid zijn.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 6. Hoofdstuk 1
single

single

some-alt