Um das ursprüngliche Element aus einem Iterable abzurufen, das eine bestimmte Bedingung erfüllt, können Sie den folgenden Ansatz wählen:
Für diejenigen, die werfen müssen Fall für StopIteration (wenn keine Übereinstimmung gefunden wird):
next(x for x in the_iterable if x > 3)
Für Szenarien, in denen Sie einen Standardwert zurückgeben möchten (z. B. Keine):
next((x for x in the_iterable if x > 3), default_value)
Sie können die .next()-Methode des Iterators verwenden, die sofort auslöst, wenn der Iterator sofort endet (d. h. kein Element in iterable erfüllt die Bedingung). StopIteration. Wenn Ihnen diese Situation egal ist (wenn Sie beispielsweise wissen, dass es definitiv mindestens ein Element gibt, das die Bedingung erfüllt), können Sie .next() direkt verwenden.
Wenn es Ihnen wirklich wichtig ist, können Sie itertools, eine for...: break-Schleife oder genexp verwenden, um Ihre Funktion zu implementieren. Allerdings bieten diese Alternativen keinen großen Mehrwert, daher empfiehlt es sich, die einfachere Variante zu verwenden, die Sie ursprünglich vorgeschlagen haben:
def first(the_iterable, condition = lambda x: True): for i in the_iterable: if condition(i): return i
Das obige ist der detaillierte Inhalt vonWie finde ich das erste passende Element in einem Iterable in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!