Praktische Beispiele für Generators
Generatoren können als leichte Kontextmanager verwendet werden, um Ressourcen effizient zu verwalten, wie z.B. Datenbankverbindungen, Dateioperationen oder Sperrmechanismen. Mit dem contextlib
-Modul können Generatoren die Ressourcenallokation und -bereinigung nahtlos handhaben.
1234567891011121314from 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}")
Effiziente Verarbeitung großer Datenmengen
Generatoren sind ideal für den Aufbau von Datenpipelines, die große Datensätze verzögert verarbeiten. Jede Stufe der Pipeline kann als Generator implementiert werden, was eine effiziente, speicherschonende Verarbeitung ermöglicht.
12345678910111213141516171819202122232425262728293031323334353637383940import 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)
1. Was passiert, wenn einer Generatorfunktion die Werte zum yield
ausgehen?
2. Was wird der folgende Code ausgeben?
3. Was macht der folgende Code?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 3.13
Praktische Beispiele für Generators
Swipe um das Menü anzuzeigen
Generatoren können als leichte Kontextmanager verwendet werden, um Ressourcen effizient zu verwalten, wie z.B. Datenbankverbindungen, Dateioperationen oder Sperrmechanismen. Mit dem contextlib
-Modul können Generatoren die Ressourcenallokation und -bereinigung nahtlos handhaben.
1234567891011121314from 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}")
Effiziente Verarbeitung großer Datenmengen
Generatoren sind ideal für den Aufbau von Datenpipelines, die große Datensätze verzögert verarbeiten. Jede Stufe der Pipeline kann als Generator implementiert werden, was eine effiziente, speicherschonende Verarbeitung ermöglicht.
12345678910111213141516171819202122232425262728293031323334353637383940import 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)
1. Was passiert, wenn einer Generatorfunktion die Werte zum yield
ausgehen?
2. Was wird der folgende Code ausgeben?
3. Was macht der folgende Code?
Danke für Ihr Feedback!