Generatorer
Förstå generatorer och hur de används för att skapa iteratorer.
Generatorer är en gratis lektion i Python Academy på CoddyKit. Detta är lektion 2 av 5. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Python Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Python Academy innehåller totalt 5 lektioner.
Introduktion till generatorer
Generatorer är en särskild typ av iteratorer i Python som låter dig iterera över data stegvis vid behov. I stället för att returnera all data på en gång ger de ett element i taget, vilket gör dem minneseffektiva.
I den här lektionen får du lära dig hur du skapar och använder generatorer i Python.

Vad är en generator?
En generator är en funktion som använder nyckelordet yield för att returnera värden ett i taget. Varje anrop av generatorns next()-metod återupptar körningen där generatorn senast pausades.
# 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å fungerar generatorer
Generatorer sparar funktionens tillstånd så att de kan återuppta körningen exakt där de slutade. Det gör dem minneseffektiva och idealiska för stora datamängder.
# 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, 4Generatoruttryck
Generatoruttryck liknar listkomprehensioner, men använder parenteser i stället för hakparenteser. De skapar generatorer i stället för listor.
# Generator expression
gen_exp = (x * x for x in range(5))
for value in gen_exp:
print(value) # Outputs: 0, 1, 4, 9, 16Generatorer jämfört med listor
Generatorer är minneseffektivare än listor eftersom de inte lagrar all data i minnet. I stället genererar de data efter hand.
# 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'>Användningsområden för generatorer
Generatorer passar utmärkt för:
- Bearbetning av stora datamängder som inte ryms i minnet.
- Generering av oändliga sekvenser.
- Utvärdering av data vid behov.
Oändliga generatorer
Generatorer kan skapa oändliga sekvenser, till exempel en ändlös följd av tal. Se till att stoppa loopen för att förhindra oändlig körning.
# 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 flera yield-satser
Generatorfunktioner kan innehålla flera yield-satser, vilket gör att du kan skapa komplexa 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, ThirdVanliga misstag med generatorer
Här är några misstag du bör undvika:
- Att använda
returni stället föryieldi en generatorfunktion. - Att inte använda generatorn i en loop eller med
next(). - Att använda generatorer för små datamängder där listor passar bättre.
Vad har vi lärt oss?
I den här lektionen har du lärt dig:
- Vad generatorer är och hur de fungerar i Python.
- Hur du använder
yieldför att skapa generatorfunktioner. - Skillnaderna mellan generatorer och listor.
- Användningsområden för generatorer, till exempel oändliga sekvenser och stora datamängder.
Bra jobbat! Nu går vi vidare till nästa ämne.

Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 76
- Lektioner
- 320
Vanliga frågor
Är lektionen ”Generatorer” gratis?
Ja – hela texten till ”Generatorer” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Python Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Python Academy innehåller totalt 5 lektioner.
Vad lär jag mig i ”Generatorer”?
Förstå generatorer och hur de används för att skapa iteratorer. Ni övar på Python Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Python Academy?
Du behöver inga förkunskaper. Utbildningen i Python Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 5.
Hur lång tid tar lektionen ”Generatorer”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Python Academy-lektionen?
Ja. Varje Python Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Dekoratorer
- Generatorer
- Kontexthanterare (with-satser)
- Comprehensions (listor, mängder och dictionaries)
- Iteratorer och itererbara objekt