Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Generatorfuncties | Specificatie van de Returnwaarde van een Functie
Python Functies Tutorial

bookGeneratorfuncties

Een generatorfunctie is een speciaal type functie die het sleutelwoord yield gebruikt in plaats van return om een reeks waarden te genereren. Wanneer een generatorfunctie wordt aangeroepen, retourneert deze een iteratorobject, dat kan worden doorlopen om waarden één voor één op te halen.
Het belangrijkste voordeel van generatorfuncties is hun geheugenefficiëntie. Generatorfuncties genereren waarden direct wanneer ze nodig zijn, in plaats van de volledige reeks vooraf te genereren. Dit maakt ze geheugenefficiënt, vooral bij het werken met grote datasets of oneindige reeksen.

Hier volgt een voorbeeld van een eenvoudige generator. Deze functie is een generator die logins één voor één uit de opgegeven lijst levert:

12345678910111213141516
def unique_logins_from_list(login_list): # Iterate over each login in the list for login in login_list: yield login # `yield` the current login # A predefined list of available logins login_list = ["user1", "user2", "user3", "user4", "user5"] # Creating a generator instance from the login list login_generator = unique_logins_from_list(login_list) # Generate and print 5 logins, one at a time for _ in range(5): # Each call to `next()` gives the next login print(next(login_generator))
copy

Het principe van een generator is dat deze waarden één voor één kan retourneren met behulp van het sleutelwoord yield, zonder ze allemaal tegelijk in het geheugen op te slaan. In ons voorbeeld doorloopt de generator unique_logins_from_list de lijst met logins en retourneert elke login bij yield, waarna de uitvoering wordt gepauzeerd. Wanneer next() wordt aangeroepen, hervat de generator vanaf het punt waar hij was gebleven en levert efficiënt waarden zonder de volledige lijst gelijktijdig in het geheugen te hoeven opslaan. Dit maakt generators bijzonder geschikt voor het verwerken van grote datasets of datastromen.

Taak

Swipe to start coding

Genereer unieke gebruikers-ID's met behulp van een generatorfunctie. De functie id_generator() moet voortdurend identificaties produceren zoals "ID_1", "ID_2", enzovoort.

  1. Initialiseer de variabele count met de waarde 1, omdat identificaties beginnen bij 1.
  2. Gebruik een oneindige while-lus om voortdurend identificaties te genereren.
  3. Gebruik yield om de huidige identificatie terug te geven in het formaat f"ID_{count}".
  4. Verhoog count met 1 na elke iteratie.
  5. Initialiseer het generatorobject id_gen door id_generator() aan te roepen.

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 4
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

Awesome!

Completion rate improved to 4.35

bookGeneratorfuncties

Veeg om het menu te tonen

Een generatorfunctie is een speciaal type functie die het sleutelwoord yield gebruikt in plaats van return om een reeks waarden te genereren. Wanneer een generatorfunctie wordt aangeroepen, retourneert deze een iteratorobject, dat kan worden doorlopen om waarden één voor één op te halen.
Het belangrijkste voordeel van generatorfuncties is hun geheugenefficiëntie. Generatorfuncties genereren waarden direct wanneer ze nodig zijn, in plaats van de volledige reeks vooraf te genereren. Dit maakt ze geheugenefficiënt, vooral bij het werken met grote datasets of oneindige reeksen.

Hier volgt een voorbeeld van een eenvoudige generator. Deze functie is een generator die logins één voor één uit de opgegeven lijst levert:

12345678910111213141516
def unique_logins_from_list(login_list): # Iterate over each login in the list for login in login_list: yield login # `yield` the current login # A predefined list of available logins login_list = ["user1", "user2", "user3", "user4", "user5"] # Creating a generator instance from the login list login_generator = unique_logins_from_list(login_list) # Generate and print 5 logins, one at a time for _ in range(5): # Each call to `next()` gives the next login print(next(login_generator))
copy

Het principe van een generator is dat deze waarden één voor één kan retourneren met behulp van het sleutelwoord yield, zonder ze allemaal tegelijk in het geheugen op te slaan. In ons voorbeeld doorloopt de generator unique_logins_from_list de lijst met logins en retourneert elke login bij yield, waarna de uitvoering wordt gepauzeerd. Wanneer next() wordt aangeroepen, hervat de generator vanaf het punt waar hij was gebleven en levert efficiënt waarden zonder de volledige lijst gelijktijdig in het geheugen te hoeven opslaan. Dit maakt generators bijzonder geschikt voor het verwerken van grote datasets of datastromen.

Taak

Swipe to start coding

Genereer unieke gebruikers-ID's met behulp van een generatorfunctie. De functie id_generator() moet voortdurend identificaties produceren zoals "ID_1", "ID_2", enzovoort.

  1. Initialiseer de variabele count met de waarde 1, omdat identificaties beginnen bij 1.
  2. Gebruik een oneindige while-lus om voortdurend identificaties te genereren.
  3. Gebruik yield om de huidige identificatie terug te geven in het formaat f"ID_{count}".
  4. Verhoog count met 1 na elke iteratie.
  5. Initialiseer het generatorobject id_gen door id_generator() aan te roepen.

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 4. Hoofdstuk 4
single

single

some-alt