Lær AI med Python · Lektion

Generators

Forstå generators og deres brug til at oprette iterators

Lektion 2 af 511 trin

Generators er en gratis Lær AI med Python-lektion på CoddyKit. Dette er lektion 2 af 5. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Lær AI med Python, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Lær AI med Python-kurset indeholder 5 lektioner i alt.

Introduktion til generatorer

Generatorer er en særlig type iterator i Python, der gør det muligt at gennemløbe data dovent. I stedet for at returnere alle data på én gang leverer de ét element ad gangen, hvilket gør dem hukommelseseffektive.

I denne lektion lærer du, hvordan du opretter og bruger generatorer i Python.

Generators — illustration 1

Hvad er en generator?

En generator er en funktion, der bruger nøgleordet yield til at returnere værdier én ad gangen. Hvert kald til generatorens metode next() genoptager kørslen fra det sted, hvor den sidst returnerede en værdi 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

Sådan fungerer generatorer

Generatorer gemmer funktionens tilstand, så de kan genoptage udførelsen præcis dér, hvor de slap. Det gør dem hukommelseseffektive og velegnede til store datasæt.

# 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

Generatorudtryk

Generatorudtryk minder om listeforståelser, men bruger parenteser i stedet for kantede parenteser. De opretter 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 er mere hukommelseseffektive end lister, fordi de ikke gemmer alle data i hukommelsen. I stedet genererer de data efter behov.

# 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'>

Anvendelsesområder for generatorer

Generatorer er velegnede til:

  • Behandling af store datasæt, der ikke kan være i hukommelsen.
  • Generering af uendelige sekvenser.
  • Doven evaluering af data.

Uendelige generatorer

Generatorer kan producere uendelige sekvenser, f.eks. en endeløs talrække. Sørg for at stoppe løkken for at forhindre uendelig kørsel.

# 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

Generatorfunktioner med flere yield-udtryk

Generatorfunktioner kan have flere yield-sætninger, så du kan oprette 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

Almindelige fejl med generatorer

Her er nogle fejl, du bør undgå:

  • At bruge return i stedet for yield i en generatorfunktion.
  • Ikke at forbruge generatoren med en løkke eller next().
  • At bruge generatorer til små datasæt, hvor lister er mere passende.

Hvad har du lært?

I denne lektion har du lært:

  • Hvad generatorer er, og hvordan de fungerer i Python.
  • Hvordan du bruger yield til at oprette generatorfunktioner.
  • Forskellen mellem generatorer og lister.
  • Anvendelser af generatorer, f.eks. uendelige sekvenser og store datasæt.

Godt gået! Lad os gå videre til næste emne.

Generators — illustration 11
Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
53
Lektioner
225

Ofte stillede spørgsmål

Er lektionen “Generators” gratis?

Ja — alle 3 lektioner i læringssporet Lær AI med Python, inklusive “Generators”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Lær AI med Python-kurset indeholder 5 lektioner i alt.

Hvad lærer jeg i “Generators”?

Forstå generators og deres brug til at oprette iterators Du øver dig i Lær AI med Python med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Lær AI med Python?

Der kræves ingen tidligere erfaring. Lær AI med Python på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 5.

Hvor lang tid tager lektionen “Generators”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

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

Ja. Alle Lær AI med Python-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Decorators
  2. Generators
  3. Context managers (with-udtryk)
  4. Comprehensions (lister, sets og dictionaries)
  5. Iterators og iterables
← Tilbage til Lær AI med Python