Heim > Backend-Entwicklung > Python-Tutorial > Wie kann man effizient nach mehreren Elementen in einer Liste suchen: Listenverständnis vs. Mengenüberschneidung?

Wie kann man effizient nach mehreren Elementen in einer Liste suchen: Listenverständnis vs. Mengenüberschneidung?

Mary-Kate Olsen
Freigeben: 2024-11-12 05:52:01
Original
576 Leute haben es durchsucht

How to Efficiently Check for Multiple Items in a List: List Comprehension vs. Set Intersection?

Entdecken einer schnellen Lösung zum Überprüfen auf mehrere Elemente in einer Liste

Das Ermitteln, ob ein bestimmtes Element in einer Liste vorhanden ist, ist ein grundlegender Vorgang in Programmierung. Gibt es neben der Erstellung einer benutzerdefinierten Funktion einen prägnanteren Ansatz, um dies zu überprüfen?

Versuche mit booleschen Operatoren (z. B. print (1 oder 2) in a) können zu unerwarteten Ergebnissen führen. Um dieses Problem anzugehen, führen wir zwei effiziente Methoden ein: Listenverständnis und Mengenschnittmenge.

Listenverständnis

Listenverständnis bietet eine prägnante Möglichkeit, eine Liste basierend auf einem Prädikat zu filtern . Das folgende Python-Snippet demonstriert seine Verwendung:

L1 = [2,3,4]
L2 = [1,2]
[i for i in L1 if i in L2]
Nach dem Login kopieren

Dieser Vorgang gibt eine neue Liste zurück, die nur Elemente von L1 enthält, die auch in L2 vorhanden sind. In diesem Fall lautet die resultierende Liste [2], was darauf hinweist, dass 2 das einzige gemeinsame Element ist.

Schnittmenge festlegen

Ein weiterer effektiver Ansatz nutzt Mengen. Indem wir die Eingabelisten mit der Funktion set() in Mengen umwandeln, können wir ihren Schnittpunkt mit der Methode intersect() finden:

S1 = set(L1)
S2 = set(L2)
S1.intersection(S2)
Nach dem Login kopieren

Der Schnittpunkt von Mengen gibt einen neuen Satz zurück, der Elemente enthält, die in beiden vorhanden sind Sätze. In diesem Beispiel ist das Ergebnis set([2]), was die Existenz von 2 als gemeinsames Element bestätigt.

Boolesche Werte nutzen

Sowohl leere als auch leere Listen setzt „evaluieren“ auf „Falsch“. Diese Eigenschaft ermöglicht es uns, ihre Wahrheitswerte direkt in bedingten Anweisungen zu verwenden:

if [i for i in L1 if i in L2]:
    print("2 exists in L2")
else:
    print("No common element found")
Nach dem Login kopieren

Schlussfolgerung

Durch die Verwendung von Listenverständnis oder Schnittmengen können wir effizient bestimmen, ob welche vorhanden sind Es werden mehrere Elemente in einer bestimmten Liste angezeigt, was eine präzise und praktische Lösung für diese häufige Codierungsaufgabe bietet.

Das obige ist der detaillierte Inhalt vonWie kann man effizient nach mehreren Elementen in einer Liste suchen: Listenverständnis vs. Mengenüberschneidung?. 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