Testen der Mitgliedschaft mehrerer Werte in einer Python-Liste
Testen der Mitgliedschaft mehrerer Werte in einer Liste in Python mithilfe des „in“ Bediener kann zu unerwarteten Ergebnissen führen. Betrachten Sie das folgende Beispiel:
'a','b' in ['b', 'a', 'foo', 'bar'] ('a', True)
Das Ergebnis „a“, True zeigt an, dass „a“ in der Liste vorhanden ist, gibt jedoch nicht an, ob „b“ auch vorhanden war. Dies liegt daran, dass Python den Ausdruck „in“ als Tupel behandelt, was zu der oben gezeigten Ausgabe führt.
Um genau zu überprüfen, ob sowohl „a“ als auch „b“ in der Liste vorhanden sind, können Sie Folgendes verwenden Ansatz:
all(x in ['b', 'a', 'foo', 'bar'] for x in ['a', 'b']) True
Dieser Ausdruck stellt sicher, dass jedes Element in der Liste ['a', 'b'] im Container ['b', 'a', 'foo', 'bar'“ enthalten ist. ]. Wenn eines der Elemente nicht vorhanden ist, gibt der Ausdruck „False“ zurück.
Alternative Optionen
Neben der Funktion „Alle“ gibt es noch andere Methoden, um diese Prüfung durchzuführen , aber sie sind möglicherweise nicht so vielseitig wie der „Alle“-Ansatz.
Geschwindigkeitsüberlegungen
In bestimmten Situationen kann der Teilmengentest schneller sein als der „Alle“-Test. Vorgehensweise, insbesondere wenn der Behälter und die Testgegenstände klein sind. Der Gesamtgeschwindigkeitsunterschied ist jedoch nicht erheblich genug, um die überwiegende Verwendung des Teilmengentests zu rechtfertigen.
Es ist wichtig zu beachten, dass das Verhalten von „in“ von der Art des linken Arguments abhängt. Wenn Sie beispielsweise „in“ mit einer Zeichenfolge verwenden, werden die Werte verkettet, anstatt die Mitgliedschaft zu testen.
Die Wahl des besten Ansatzes zum Testen der Mitgliedschaft mehrerer Werte in einer Liste hängt von den spezifischen Anforderungen und den beteiligten Datentypen ab , und Leistungsüberlegungen.
Das obige ist der detaillierte Inhalt vonWie kann man die Zugehörigkeit mehrerer Werte in einer Python-Liste genau testen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!