Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Generator-funksjoner | Spesifikasjon av Funksjonens Returverdi
Python Funksjoner Veiledning

bookGenerator-funksjoner

En generatorfunksjon er en spesiell type funksjon som bruker nøkkelordet yield i stedet for return for å generere en sekvens av verdier. Når en generatorfunksjon kalles, returnerer den et iteratorobjekt, som kan itereres over for å hente ut verdier én om gangen.
Hovedfordelen med generatorfunksjoner er deres minneeffektivitet. Generatorfunksjoner genererer verdier fortløpende etter hvert som de trengs, i stedet for å generere hele sekvensen på forhånd. Dette gjør dem minneeffektive, spesielt ved håndtering av store datasett eller uendelige sekvenser.

Se et enkelt eksempel på en generator. Denne funksjonen gir utlogg én etter én fra den gitte listen:

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

Prinsippet bak en generator er at den gjør det mulig å returnere verdier én om gangen ved hjelp av nøkkelordet yield, uten å lagre alle verdiene i minnet samtidig. I vårt eksempel itererer generatoren unique_logins_from_list gjennom listen av innlogginger, returnerer hver enkelt ved yield og pauser på det punktet. Når next() kalles, fortsetter generatoren der den slapp, og gir effektivt ut verdier uten å måtte lagre hele listen i minnet samtidig. Dette gjør generatorer spesielt nyttige for håndtering av store datasett eller datastrømmer.

Oppgave

Swipe to start coding

Generer unike bruker-ID-er ved hjelp av en generatorfunksjon. Funksjonen id_generator() skal kontinuerlig produsere identifikatorer som "ID_1", "ID_2", osv.

  1. Initialiser variabelen count med verdien 1, siden identifikatorene starter fra 1.
  2. Bruk en uendelig while-løkke for å kontinuerlig generere identifikatorer.
  3. Bruk yield for å returnere gjeldende identifikator i formatet f"ID_{count}".
  4. Øk count med 1 etter hver iterasjon.
  5. Initialiser generatorobjektet id_gen ved å kalle id_generator().

Løsning

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 4
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you explain how the generator resumes execution after each yield?

What happens if I call next() more times than there are items in the list?

Can you show a real-world scenario where using a generator is better than a regular function?

close

Awesome!

Completion rate improved to 4.35

bookGenerator-funksjoner

Sveip for å vise menyen

En generatorfunksjon er en spesiell type funksjon som bruker nøkkelordet yield i stedet for return for å generere en sekvens av verdier. Når en generatorfunksjon kalles, returnerer den et iteratorobjekt, som kan itereres over for å hente ut verdier én om gangen.
Hovedfordelen med generatorfunksjoner er deres minneeffektivitet. Generatorfunksjoner genererer verdier fortløpende etter hvert som de trengs, i stedet for å generere hele sekvensen på forhånd. Dette gjør dem minneeffektive, spesielt ved håndtering av store datasett eller uendelige sekvenser.

Se et enkelt eksempel på en generator. Denne funksjonen gir utlogg én etter én fra den gitte listen:

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

Prinsippet bak en generator er at den gjør det mulig å returnere verdier én om gangen ved hjelp av nøkkelordet yield, uten å lagre alle verdiene i minnet samtidig. I vårt eksempel itererer generatoren unique_logins_from_list gjennom listen av innlogginger, returnerer hver enkelt ved yield og pauser på det punktet. Når next() kalles, fortsetter generatoren der den slapp, og gir effektivt ut verdier uten å måtte lagre hele listen i minnet samtidig. Dette gjør generatorer spesielt nyttige for håndtering av store datasett eller datastrømmer.

Oppgave

Swipe to start coding

Generer unike bruker-ID-er ved hjelp av en generatorfunksjon. Funksjonen id_generator() skal kontinuerlig produsere identifikatorer som "ID_1", "ID_2", osv.

  1. Initialiser variabelen count med verdien 1, siden identifikatorene starter fra 1.
  2. Bruk en uendelig while-løkke for å kontinuerlig generere identifikatorer.
  3. Bruk yield for å returnere gjeldende identifikator i formatet f"ID_{count}".
  4. Øk count med 1 etter hver iterasjon.
  5. Initialiser generatorobjektet id_gen ved å kalle id_generator().

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 4
single

single

some-alt