Heim > Artikel > Backend-Entwicklung > Gibt es eine effizientere Möglichkeit, zu überprüfen, ob ein Element aus einer Liste in einer anderen Liste vorhanden ist?
Einbeziehen mehrerer Elemente in die Listenüberprüfung
Die erste Frage dreht sich darum, eine effiziente Methode zu finden, um festzustellen, ob ein Element aus einer bestimmten Liste vorhanden ist innerhalb einer anderen Liste. Anstatt eine benutzerdefinierte Funktion zu verwenden, werden in diesem Artikel alternative Ansätze zur Bewältigung dieses Szenarios untersucht.
Ansatz 1: Listenverständnis
Wie unten beispielhaft dargestellt, kann ein Listenverständnis eingesetzt werden um Elemente in der ersten Liste zu isolieren, die in der zweiten Liste vorhanden sind:
L1 = [2, 3, 4] L2 = [1, 2] [i for i in L1 if i in L2]
Dieser Ansatz ergibt eine Liste übereinstimmender Elemente, die den booleschen Wert True hat, wenn sie Elemente enthält. Im gegebenen Beispiel wird [2] zurückgegeben.
Ansatz 2: Schnittmenge festlegen
Alternativ können Mengen für effizientere Listenvergleiche verwendet werden. Durch Konvertieren jeder Liste in eine Menge kann ihr Schnittpunkt wie folgt ermittelt werden:
S1 = set(L1) S2 = set(L2) S1.intersection(S2)
Ähnlich wie beim Listenverständnis enthält der Schnittpunkt der beiden Mengen nur die übereinstimmenden Elemente. Da leere Mengen als „Falsch“ ausgewertet werden, kann das Schnittergebnis direkt als Wahrheitswert verwendet werden.
Überlegungen zur logischen Auswertung
Es ist wichtig zu beachten, dass es einen gibt Das übereinstimmende Element reicht aus, um in beiden Ansätzen „True“ zurückzugeben. Daher ist diese Methode möglicherweise nicht für Szenarien geeignet, in denen alle Elemente vorhanden sein müssen.
Das obige ist der detaillierte Inhalt vonGibt es eine effizientere Möglichkeit, zu überprüfen, ob ein Element aus einer Liste in einer anderen Liste vorhanden ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!