So erhalten Sie das erste passende Element aus einem Iterable
In vielen Szenarien müssen Entwickler das erste Element aus einem Iterable abrufen das eine bestimmte Bedingung erfüllt. Obwohl es möglich ist, die gesamte Iteration zu durchlaufen, kann dieser Ansatz für große Datensätze ineffizient sein.
Die nächste Funktion in Python 2.6 und Python 3
Python 2.6 und höher Versionen führen die nächste Funktion ein, die eine elegante Lösung für diese Aufgabe bietet. Durch Iterieren über einen Generatorausdruck mit der nächsten Funktion können Sie die Bedingung angeben:
next(x for x in the_iterable if condition(x))
Wenn Sie StopIteration auslösen möchten, wenn kein passendes Element gefunden wird, verwenden Sie die folgende Syntax:
next(x for x in the_iterable if x > 3)
Um stattdessen einen Standardwert zurückzugeben, verwenden Sie:
next((x for x in the_iterable if x > 3), default_value)
Iteratoren in Python 2.5 und Früher
In Python 2.5 und früheren Versionen können Sie die .next()-Methode von Iteratoren verwenden. Diese Methode löst jedoch StopIteration aus, wenn kein Element die Bedingung erfüllt. Wenn Sie sicher sind, dass mindestens ein passendes Element vorhanden ist, können Sie .next() verwenden:
the_iterable.next()
Alternative Ansätze für Python 2.5 und früher
Alternativ: Sie können eine Funktion wie die, die Sie ursprünglich vorgeschlagen haben, implementieren:
def first(the_iterable, condition=lambda x: True): for i in the_iterable: if condition(i): return i
Sie können auch die Itertools verwenden Modul, eine for...: break-Schleife oder einen genexp, um das gleiche Ergebnis zu erzielen.
Das obige ist der detaillierte Inhalt vonWie erhalte ich effizient das erste passende Element aus einem Iterable in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!