Lær AI med Python · leksjon

Generatorer

Forstå generatorer og hvordan de brukes til å opprette iteratorer

Leksjon 2 av 511 trinn

Generatorer er en gratis leksjon i Lær AI med Python på CoddyKit. Dette er leksjon 2 av 5. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lær AI med Python, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lær AI med Python inneholder totalt 5 leksjoner.

Introduksjon til generatorer

Generatorer er en spesiell type iterator i Python som lar deg iterere over data på en lat måte. I stedet for å returnere alle dataene på én gang, gir de fra seg ett element om gangen, noe som gjør dem minneeffektive.

I denne leksjonen lærer du hvordan du oppretter og bruker generatorer i Python.

Generatorer — illustrasjon 1

Hva er en generator?

En generator er en funksjon som bruker nøkkelordet yield til å returnere verdier én om gangen. Hvert kall til generatorens next()-metode fortsetter kjøringen fra stedet der den sist returnerte en verdi med yield.

# Basic generator example
def my_generator():
    yield 1
    yield 2
    yield 3

# Using the generator
gen = my_generator()
print(next(gen))  # Outputs: 1
print(next(gen))  # Outputs: 2
print(next(gen))  # Outputs: 3

Slik fungerer generatorer

Generatorer lagrer funksjonens tilstand, slik at de kan fortsette kjøringen nøyaktig der de slapp. Dette gjør dem minneeffektive og ideelle for store datasett.

# Example: Generating a range of numbers
def range_generator(start, end):
    while start < end:
        yield start
        start += 1

for number in range_generator(1, 5):
    print(number)  # Outputs: 1, 2, 3, 4

Generatoruttrykk

Generatoruttrykk ligner på listeforståelser, men bruker parenteser i stedet for hakeparenteser. De oppretter generatorer i stedet for lister.

# Generator expression
gen_exp = (x * x for x in range(5))

for value in gen_exp:
    print(value)  # Outputs: 0, 1, 4, 9, 16

Generatorer kontra lister

Generatorer bruker mindre minne enn lister fordi de ikke lagrer alle dataene i minnet. I stedet genererer de data fortløpende.

# Comparing lists and generators
# List comprehension
list_comp = [x * x for x in range(1000000)]

# Generator expression
gen_exp = (x * x for x in range(1000000))

# List comprehension uses more memory
print(type(list_comp))  # Outputs: <class 'list'>
print(type(gen_exp))    # Outputs: <class 'generator'>

Bruksområder for generatorer

Generatorer egner seg godt til:

  • Behandle store datasett som ikke får plass i minnet.
  • Generere uendelige sekvenser.
  • Lat evaluering av data.

Uendelige generatorer

Generatorer kan produsere uendelige sekvenser, for eksempel en endeløs tallrekke. Sørg for å stoppe løkken for å hindre uendelig kjøring.

# Infinite generator example
def infinite_sequence():
    num = 0
    while True:
        yield num
        num += 1

# Using the infinite generator
for i in infinite_sequence():
    if i > 5:
        break
    print(i)  # Outputs: 0, 1, 2, 3, 4, 5

Generatorfunksjoner med flere yield

Generatorfunksjoner kan ha flere yield-setninger, slik at du kan opprette komplekse sekvenser:

# Multiple yields in a generator
def multi_yield():
    yield "First"
    yield "Second"
    yield "Third"

for value in multi_yield():
    print(value)  # Outputs: First, Second, Third

Vanlige feil med generatorer

Her er noen feil du bør unngå:

  • Bruke return i stedet for yield i en generatorfunksjon.
  • Ikke iterere over generatoren med en løkke eller next().
  • Bruke generatorer for små datasett der lister egner seg bedre.

Hva har vi lært?

I denne leksjonen har du lært:

  • Hva generatorer er, og hvordan de fungerer i Python.
  • Hvordan du bruker yield til å opprette generatorfunksjoner.
  • Forskjellene mellom generatorer og lister.
  • Bruksområder for generatorer, for eksempel uendelige sekvenser og store datasett.

Flott jobbet! La oss gå videre til neste emne.

Generatorer — illustrasjon 11
Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
53
Leksjoner
225

Ofte stilte spørsmål

Er leksjonen «Generatorer» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lær AI med Python, inkludert «Generatorer», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lær AI med Python inneholder totalt 5 leksjoner.

Hva lærer jeg i «Generatorer»?

Forstå generatorer og hvordan de brukes til å opprette iteratorer Du øver på Lær AI med Python med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Lær AI med Python?

Ingen tidligere erfaring er nødvendig. Lær AI med Python på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 5.

Hvor lang tid tar leksjonen «Generatorer»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Lær AI med Python-leksjonen?

Ja. Alle Lær AI med Python-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Dekoratorer
  2. Generatorer
  3. Context managers (with-setninger)
  4. Comprehensions (liste, sett og ordbok)
  5. Iteratorer og iterables
← Tilbake til Lær AI med Python