Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Iterators Koppelen en Samenstellen | Python Iterators
Functionele Programmeerconcepten in Python

bookIterators Koppelen en Samenstellen

Veeg om het menu te tonen

Het koppelen en samenstellen van iterators stelt je in staat om krachtige datapijplijnen in Python te bouwen. Door eenvoudige iterator- of generatorfuncties aan elkaar te koppelen, kun je gegevens stap voor stap verwerken, waarbij elke fase de gegevens transformeert of filtert voordat deze naar de volgende wordt doorgegeven. Deze aanpak is vooral nuttig wanneer je meerdere bewerkingen opeenvolgend wilt toepassen, zoals het filteren van items en vervolgens het transformeren ervan, of het combineren van gegevens uit verschillende bronnen. De bovenstaande video laat zien hoe je generatorpijplijnen kunt gebruiken om je code modulair en geheugenefficiënt te houden, waardoor het niet nodig is om tussentijdse lijsten te maken.

Om dit in de praktijk te zien, kun je denken aan een scenario waarin je een reeks getallen hebt en je de even getallen wilt filteren, waarna je de overgebleven getallen kwadrateert. Dit kun je bereiken door twee generatorfuncties te koppelen: één voor het filteren en één voor het transformeren. Deze aanpak zorgt ervoor dat elk item alleen wordt verwerkt wanneer dat nodig is, waardoor je code zowel beknopt als efficiënt blijft.

12345678910111213141516171819
def filter_odds(numbers): for n in numbers: if n % 2 != 0: yield n def square_numbers(numbers): for n in numbers: yield n ** 2 # Original data data = range(10) # Chain the generators: first filter, then transform filtered = filter_odds(data) squared = square_numbers(filtered) # Collect results result = list(squared) print(result) # Output: [1, 9, 25, 49, 81]
copy

De eerste functie, filter_odds, neemt een iterabele van getallen en geeft alleen de oneven getallen door. De tweede functie, square_numbers, neemt een iterabele en geeft het kwadraat van elk getal door. Door de uitvoer van filter_odds direct aan square_numbers door te geven, creëer je een pijplijn: eerst filteren, daarna de gegevens transformeren. Het uiteindelijke resultaat wordt verzameld in een lijst en afgedrukt, waarbij de kwadraten van alle oneven getallen van 0 tot 9 worden getoond.

Deze methode is geheugenefficiënt omdat elke waarde één voor één wordt verwerkt, in plaats van tussentijdse lijsten te maken. Het houdt je code ook modulair, omdat elke generatorfunctie één taak uitvoert en in verschillende pijplijnen kan worden hergebruikt.

question mark

Wat is een voordeel van het koppelen van iterators en generators in Python?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 5. Hoofdstuk 6

Vraag AI

expand

Vraag AI

ChatGPT

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

Sectie 5. Hoofdstuk 6
some-alt