So erstellen und verwenden Sie Python-Generatoren

So Erstellen Und Verwenden Sie Python Generatoren



Als Entwickler müssen Sie häufig mit vielen unbedeutenden Datenwerten arbeiten. Das Speichern dieser Werte verbraucht einen Teil des Speichers und verringert so die Effizienz Ihres Codes. In Python können Sie jedoch Generatoren verwenden, um diesen Verlust zu vermeiden.

Mit Generatoren können Sie die Werte einer bestimmten Sequenz in großen Mengen produzieren, ohne sie vollständig im Speicher abzulegen. Darüber hinaus erstellt die Funktion „Generator“ ein Objekt, das bei der Iteration Werte generiert. Wenn Sie also Python-Generatoren in die Hände bekommen möchten, ist dieses Tutorial genau das Richtige für Sie. Hier erklären wir, wie Sie die Python-Generatoren erstellen und verwenden.

So erstellen und verwenden Sie die Python-Generatoren

Python-Generatoren werden verwendet, um die Datensequenzen effektiv zu bearbeiten, vor allem beim Umgang mit großen oder nahezu endlosen Datensätzen. Die Vorteile von Python-Generatoren sind:







  1. Prägnant: Sie können die Generatoren einfach und prägnant definieren, was die Lesbarkeit des Codes verbessert.
  2. Speichereffizient: Sie generieren gleichzeitig einen einzelnen Wert, der weniger Speicher verbraucht und die Effizienz verbessert.
  3. Integrierte Funktionen: In Python verfügen Generatoren über vordefinierte Funktionen wie next(), iter() und yield, um ihre Arbeit zu erleichtern.
  4. Funktion zum Anhalten und Fortsetzen: Während Sie an komplexen Algorithmen arbeiten, können Sie mit der „Yield“-Funktion den Betrieb von Generatoren anhalten und wieder aufnehmen.

Sie können Generatoren in Python auf verschiedene Arten erstellen und verwenden. Wir werden diesen Abschnitt weiter unterteilen, um seine Implementierung anhand verschiedener Beispiele zu demonstrieren. Schauen wir uns zunächst die grundlegende Syntax an:



def Funktionsname ( ) :
Ertrag Ausdruck

„def“ definiert eine Funktion und „yield“ wird zum Erstellen der „generator“-Funktion verwendet. Allerdings hilft auch eine andere Methode, einen Generator nur mit einzeiligen Ausdrücken zu erstellen.



Generatorfunktion zur Erzeugung eines Strings

Definieren wir eine Generatorfunktion, um einen Wert zu erhalten:





def Generator ( ) :
Ertrag „Das ist ein Generator“
für Wert In Generator ( ) :
drucken ( Wert )

Wenn wir mit einer „for“-Schleife darüber iterieren, generiert das Programm die angegebenen Werte, die Sie mit der Funktion „print“ ausdrucken können.



Generatorfunktion zur Erstellung eines Zählers

Das folgende Programm ist das Beispiel für die Generatorfunktion zum Erzeugen einer Zahlenfolge:

def mein_generator ( N ) :
Schalter = 0
während Schalter < N:
Ertrag Schalter
Zähler + = 1
für Schalter In mein_generator ( 10 ) :
drucken ( Schalter )

Wenn die Eingabe beispielsweise 10 ist, erhalten Sie beim Kompilieren dieses Codes Werte von 0 bis 9.

Fibonacci-Reihe mit der Generatorfunktion

Lassen Sie uns nun die Fibonacci-Reihe verwenden, die grundlegendste Reihe in der Programmierung:

def series_fibonacci ( Grenze ) :
ich , J = 0 , 1
während ich < Grenze:
Ertrag ich
ich , J = J , ich + j

A = series_fibonacci ( 6 )

drucken ( nächste ( A ) )
drucken ( nächste ( A ) )
drucken ( nächste ( A ) )
drucken ( nächste ( A ) )
drucken ( nächste ( A ) )
drucken ( nächste ( A ) )

Wir erhalten die Serie wie folgt, indem wir den Code ausführen:

Erstellen Sie zunächst ein Objekt mit dem Namen „a“ und rufen Sie die Funktion „generator“ mit der gewünschten Eingabe als Argument auf.

Das Schlüsselwort next() ist ein manueller Iterator. Jedes Mal, wenn wir next(a) verwenden, iteriert es über einen Wert von „a“. Wir können jedoch die „for“-Schleife verwenden, um alle Werte von „a“ auf einmal auszugeben, wie im folgenden Beispiel gezeigt:

Verwenden der „for“-Schleife anstelle der next()-Funktion:

def series_fibonacci ( Grenze ) :
ich , J = 0 , 1
während ich < Grenze:
Ertrag ich
ich , J = J , ich + j

A = series_fibonacci ( 6 )
für Wert In A :
drucken ( Wert )

Das Ergebnis der Ausführung des Codes wird sich nicht unterscheiden, da es sich um eine alternative Methode zum Schreiben des vorherigen Programms handelt:

Was sind Generatorausdrücke in Python?

Python-Generatorausdrücke sind eine Möglichkeit, die „Generator“-Funktionen mithilfe linearer Ausdrücke präzise zu erstellen. Hier ist die einfache Syntax:

( Ausdruck für Variable In wiederholbar Wenn Zustand )

Erstellen Sie beispielsweise einen Generatorausdruck, um die Quadrate ungerader Zahlen von 0 bis „n“ zu berechnen, wenn „n“ der Eingabewert ist.

odd_squares = ( x * x für X In Reichweite ( 10 ) Wenn X % 2 != 0 )
für Wert In odd_squares:
drucken ( Wert )

Der vorherige Code liefert das folgende Ergebnis:

Abschluss

Hier dreht sich alles um die verschiedenen Methoden zum Erstellen und Verwenden der Python-Generatoren. Wir haben alles über die Python-Generator-Ausdrücke erklärt. Sie sollten diese Ausdrücke verwenden, wenn Sie die Verwendung von Generatoren in einem Ihrer Projekte in Betracht ziehen, da sie in allen Programmieraspekten effizienter sind.