Es ist eine häufige Aufgabe, zu überprüfen, ob sich ein oder mehrere Elemente in einer Liste befinden. Anstatt eine aufwändige Funktion zu entwickeln, können Sie die folgenden prägnanten Ansätze verwenden.
Der Python-Operator or wertet seine Argumente nacheinander aus und gibt den ersten wahren oder nicht leeren Wert zurück. Auch wenn dies wie eine Lösung erscheint, reicht es im Fall von Listen nicht aus. Wie oben gezeigt, wird (1 oder 2) in a als Falsch ausgewertet, während (2 oder 1) in a als Wahr ausgewertet wird. Dies geschieht, weil 1 in einem booleschen Kontext als „Falsch“ ausgewertet wird, was dazu führt, dass der Ausdruck in a äquivalent zu „Falsch“ ist.
Eine effizientere und lesbarere Methode ist die Verwendung eines Listenverständnisses oder einer Mengenschnittmenge. Mithilfe des Listenverständnisses können Sie die Elemente der ersten Liste basierend auf ihrer Präsenz in der zweiten Liste filtern. Zum Beispiel:
L1 = [2, 3, 4] L2 = [1, 2] [i for i in L1 if i in L2] # Returns [2]
Alternativ können Sie die Listen in Mengen umwandeln, eine Mengenüberschneidung durchführen und den booleschen Wert der resultierenden Menge verwenden. Dieser Ansatz ist für den effizienten Umgang mit doppelten Elementen von Vorteil:
S1 = set(L1) S2 = set(L2) S1.intersection(S2) # Returns set([2])
Sowohl leere Listen als auch leere Mengen werden als „Falsch“ ausgewertet, sodass Sie deren Vorhandensein direkt mithilfe der booleschen Logik beurteilen können.
Das obige ist der detaillierte Inhalt vonSo prüfen Sie effizient, ob Elemente in einer Liste vorhanden sind: Verknüpfungen und Best Practices. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!