Heim >Backend-Entwicklung >Python-Tutorial >Wie findet man effizient das erste passende Element in einer Python-Liste?
Das erste Element, das eine bestimmte Bedingung erfüllt, aus einer potenziell umfangreichen Liste abzurufen, ist eine häufige Vorgehensweise Aufgabe. Während benutzerdefinierte Funktionen wie Ihre diesen Zweck erfüllen können, gibt es möglicherweise effizientere Alternativen, die in Python integriert sind.
Für diese Versionen sollten Sie als nächstes eine integrierte Funktion in Betracht ziehen Daraus ergeben sich die folgenden zwei Ansätze:
Raising StopIteration:
next(x for x in the_iterable if x > 3)
Rückgabe eines Standardwerts (z. B. Keine):
next((x for x in the_iterable if x > 3), default_value)
Hinweis: Die folgenden Lösungen sind weniger effizient als die für Python 2.6, da sie die gesamte Liste verarbeiten.
nächste Methode:
.next()
Wenn kein Element die Bedingung erfüllt, wird StopIteration sofort ausgelöst.
Benutzerdefinierte Funktion (gemäß Ihrer ursprünglichen Vorschlag):
def first(the_iterable, condition = lambda x: True): for i in the_iterable: if condition(i): return i
itertools:
from itertools import ifilter, islice first_item = next(ifilter(lambda x: x > 3, the_iterable))</h3> <li> <p>for-Schleife mit Pause:</p> <pre class="brush:php;toolbar:false">for item in the_iterable: if condition(item): break first_item = item
Versuchen/Außer StopIteration:
try: first_item = next(x for x in the_iterable if condition(x)) except StopIteration: return None
Das obige ist der detaillierte Inhalt vonWie findet man effizient das erste passende Element in einer Python-Liste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!