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
Mary-Kate OlsenOriginal
2024-11-12 05:52:01575Durchsuche

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]

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)

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")

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!

Stellungnahme:
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