„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie überprüfe ich in Python, ob ein Generator leer ist?

Wie überprüfe ich in Python, ob ein Generator leer ist?

Veröffentlicht am 06.11.2024
Durchsuche:386

How to Check if a Generator is Empty in Python?

Erkennen leerer Generatorinitialisierung

In Python sind Generatoren Iteratoren, die Werte einzeln liefern. Daher kann es eine Herausforderung sein, von Anfang an festzustellen, ob ein Generator leer ist. Im Gegensatz zu Listen oder Tupeln verfügen Generatoren nicht über eine inhärente Längen- oder isEmpty-Methode.

Bewältigung der Herausforderung

Um dieses Problem zu lösen, besteht ein gängiger Ansatz darin, eine Hilfsfunktion zu verwenden Sehen Sie sich den ersten Wert im Generator an, ohne ihn zu verbrauchen. Wenn die Peek-Funktion None zurückgibt, bedeutet dies, dass der Generator keine Elemente hat.

Vorgeschlagene Implementierung

Eine solche Funktion mit dem Namen „Peek“ kann wie folgt implementiert werden:

def peek(iterable):
    try:
        first = next(iterable)
    except StopIteration:
        return None
    return first, itertools.chain([first], iterable)

Peek verwenden, um leere Generatoren zu bestimmen

Um festzustellen, ob ein Generator leer ist, können Sie den Peek verwenden Funktion auf folgende Weise:

res = peek(mysequence)
if res is None:
    # sequence is empty.  Do stuff.
else:
    first, mysequence = res
    # Do something with first, maybe?
    # Then iterate over the sequence:
    for element in mysequence:
        # etc.

Wenn in diesem Beispiel der Generator leer ist, gibt die Peek-Funktion None zurück und die if-Bedingung ist wahr. Andernfalls wird der else-Block ausgeführt. Mit diesem Ansatz können Sie effektiv erkennen, ob ein Generator von Anfang an leer ist.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729390097. Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3