Generators
Forstå generators og deres brug til at oprette iterators
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.

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: 3Så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, 4Generatorudtryk
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, 16Generatorer 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, 5Generatorfunktioner 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, ThirdAlmindelige fejl med generatorer
Her er nogle fejl, du bør undgå:
- At bruge
returni stedet foryieldi 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
yieldtil 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.

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
- Decorators
- Generators
- Context managers (with-udtryk)
- Comprehensions (lister, sets og dictionaries)
- Iterators og iterables