Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Praktiska Tillämpningar av Generatorer: Verkliga Användningsområden | Bemästra Iteratorer och Generatorer i Python
Python Strukturell Programmering

bookPraktiska Tillämpningar av Generatorer: Verkliga Användningsområden

Generatorer kan användas som lättviktiga kontexthanterare för att hantera resurser effektivt, såsom databasanslutningar, filoperationer eller låsningsmekanismer. Med modulen contextlib kan generatorer hantera resursallokering och städning sömlöst.

1234567891011121314
from contextlib import contextmanager @contextmanager def database_connection(): print("Opening database connection") connection = "Database Connection" # Simulated connection try: yield connection finally: print("Closing database connection") # Using the generator as a context manager with database_connection() as conn: print(f"Using {conn}")
copy

Effektiv bearbetning av stora datamängder

Generatorer är idealiska för att bygga datapipelines som bearbetar stora dataset på ett lazy sätt. Varje steg i pipelinen kan implementeras som en generator, vilket möjliggör effektiv och minnessnål bearbetning.

12345678910111213141516171819202122232425262728293031323334353637383940
import re # Stage 1: Read lines lazily def read_lines(text): for line in text.split("\n"): yield line # Stage 2: Filter non-empty lines def filter_lines(lines): for line in lines: if line.strip(): yield line # Stage 3: Extract words lazily def extract_words(lines): for line in lines: for word in re.findall(r'\w+', line): yield word # Stage 4: Transform words to lowercase def lowercase_words(words): for word in words: yield word.lower() # Input text text = """Generators are powerful tools They allow efficient data processing This pipeline demonstrates their usage""" # Build the pipeline lines = read_lines(text) filtered = filter_lines(lines) words = extract_words(filtered) lowercased = lowercase_words(words) # Process the data print("Processed words:") for word in lowercased: print(word)
copy

1. Vad händer när en generatorfunktion får slut på värden att yield?

2. Vad kommer följande kod att skriva ut?

3. Vad gör följande kod?

question mark

Vad händer när en generatorfunktion får slut på värden att yield?

Select the correct answer

question mark

Vad kommer följande kod att skriva ut?

Select the correct answer

question mark

Vad gör följande kod?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 6. Kapitel 5

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

Can you explain how the @contextmanager decorator works in more detail?

What are some real-world scenarios where generator-based context managers are especially useful?

How does using generators in data pipelines improve memory efficiency?

bookPraktiska Tillämpningar av Generatorer: Verkliga Användningsområden

Svep för att visa menyn

Generatorer kan användas som lättviktiga kontexthanterare för att hantera resurser effektivt, såsom databasanslutningar, filoperationer eller låsningsmekanismer. Med modulen contextlib kan generatorer hantera resursallokering och städning sömlöst.

1234567891011121314
from contextlib import contextmanager @contextmanager def database_connection(): print("Opening database connection") connection = "Database Connection" # Simulated connection try: yield connection finally: print("Closing database connection") # Using the generator as a context manager with database_connection() as conn: print(f"Using {conn}")
copy

Effektiv bearbetning av stora datamängder

Generatorer är idealiska för att bygga datapipelines som bearbetar stora dataset på ett lazy sätt. Varje steg i pipelinen kan implementeras som en generator, vilket möjliggör effektiv och minnessnål bearbetning.

12345678910111213141516171819202122232425262728293031323334353637383940
import re # Stage 1: Read lines lazily def read_lines(text): for line in text.split("\n"): yield line # Stage 2: Filter non-empty lines def filter_lines(lines): for line in lines: if line.strip(): yield line # Stage 3: Extract words lazily def extract_words(lines): for line in lines: for word in re.findall(r'\w+', line): yield word # Stage 4: Transform words to lowercase def lowercase_words(words): for word in words: yield word.lower() # Input text text = """Generators are powerful tools They allow efficient data processing This pipeline demonstrates their usage""" # Build the pipeline lines = read_lines(text) filtered = filter_lines(lines) words = extract_words(filtered) lowercased = lowercase_words(words) # Process the data print("Processed words:") for word in lowercased: print(word)
copy

1. Vad händer när en generatorfunktion får slut på värden att yield?

2. Vad kommer följande kod att skriva ut?

3. Vad gör följande kod?

question mark

Vad händer när en generatorfunktion får slut på värden att yield?

Select the correct answer

question mark

Vad kommer följande kod att skriva ut?

Select the correct answer

question mark

Vad gör följande kod?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 6. Kapitel 5
some-alt