Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Generatorfunktioner | Specifikation av Funktions Returvärde
Handledning om Pythonfunktioner

bookGeneratorfunktioner

En generatorfunktion är en speciell typ av funktion som använder nyckelordet yield istället för return för att generera en sekvens av värden. När en generatorfunktion anropas returnerar den ett iteratorobjekt, vilket kan itereras över för att hämta värden ett i taget.
Den främsta fördelen med generatorfunktioner är deras minnes­effektivitet. Generatorfunktioner genererar värden vid behov, istället för att skapa hela sekvensen på en gång. Detta gör dem minnes­effektiva, särskilt vid hantering av stora datamängder eller oändliga sekvenser.

Betrakta ett enkelt exempel på en generator. Denna funktion returnerar inloggningar en i taget från den angivna listan:

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

Principen för en generator är att den möjliggör att värden returneras ett i taget med hjälp av nyckelordet yield, utan att lagra dem alla i minnet samtidigt. I vårt exempel itererar generatorn unique_logins_from_list genom listan av inloggningar och returnerar varje vid yield och pausar vid den punkten. När next() anropas återupptar generatorn där den slutade, och levererar värden utan att behöva lagra hela listan i minnet samtidigt. Detta gör generatorer särskilt användbara för hantering av stora datamängder eller dataströmmar.

Uppgift

Swipe to start coding

Generera unika användar-ID med hjälp av en generatorfunktion. Funktionen id_generator() ska kontinuerligt skapa identifierare som "ID_1", "ID_2" osv.

  1. Initiera variabeln count med värdet 1, eftersom identifierare börjar från 1.
  2. Använd en oändlig while-loop för att kontinuerligt generera identifierare.
  3. Använd yield för att returnera den aktuella identifieraren i formatet f"ID_{count}".
  4. Inkrementera count med 1 efter varje iteration.
  5. Initiera generatorobjektet id_gen genom att anropa id_generator().

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 4
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

Awesome!

Completion rate improved to 4.35

bookGeneratorfunktioner

Svep för att visa menyn

En generatorfunktion är en speciell typ av funktion som använder nyckelordet yield istället för return för att generera en sekvens av värden. När en generatorfunktion anropas returnerar den ett iteratorobjekt, vilket kan itereras över för att hämta värden ett i taget.
Den främsta fördelen med generatorfunktioner är deras minnes­effektivitet. Generatorfunktioner genererar värden vid behov, istället för att skapa hela sekvensen på en gång. Detta gör dem minnes­effektiva, särskilt vid hantering av stora datamängder eller oändliga sekvenser.

Betrakta ett enkelt exempel på en generator. Denna funktion returnerar inloggningar en i taget från den angivna listan:

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

Principen för en generator är att den möjliggör att värden returneras ett i taget med hjälp av nyckelordet yield, utan att lagra dem alla i minnet samtidigt. I vårt exempel itererar generatorn unique_logins_from_list genom listan av inloggningar och returnerar varje vid yield och pausar vid den punkten. När next() anropas återupptar generatorn där den slutade, och levererar värden utan att behöva lagra hela listan i minnet samtidigt. Detta gör generatorer särskilt användbara för hantering av stora datamängder eller dataströmmar.

Uppgift

Swipe to start coding

Generera unika användar-ID med hjälp av en generatorfunktion. Funktionen id_generator() ska kontinuerligt skapa identifierare som "ID_1", "ID_2" osv.

  1. Initiera variabeln count med värdet 1, eftersom identifierare börjar från 1.
  2. Använd en oändlig while-loop för att kontinuerligt generera identifierare.
  3. Använd yield för att returnera den aktuella identifieraren i formatet f"ID_{count}".
  4. Inkrementera count med 1 efter varje iteration.
  5. Initiera generatorobjektet id_gen genom att anropa id_generator().

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 4
single

single

some-alt