Heim > Backend-Entwicklung > Python-Tutorial > Wie erhalte ich effizient das erste passende Element aus einem Iterable in Python?

Wie erhalte ich effizient das erste passende Element aus einem Iterable in Python?

Mary-Kate Olsen
Freigeben: 2024-12-10 19:16:10
Original
609 Leute haben es durchsucht

How to Efficiently Get the First Matching Item from an Iterable in Python?

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))
Nach dem Login kopieren

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)
Nach dem Login kopieren

Um stattdessen einen Standardwert zurückzugeben, verwenden Sie:

next((x for x in the_iterable if x > 3), default_value)
Nach dem Login kopieren

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()
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage