Heim >Backend-Entwicklung >Python-Tutorial >Wie kann man in Python mehrere Variablen effizient auf Gleichheit mit einem einzelnen Wert testen?
So testen Sie mehrere Variablen gleichzeitig auf Gleichheit gegenüber einem einzelnen Wert in Python
Beim Vergleich zahlreicher Variablen mit einer Ganzzahl und der Generierung einer Dreiergruppe Wenn Sie eine Buchstabenzeichenfolge als Ausgabe verwenden, kann es bei der Übersetzung dieses Konzepts in Python zu Schwierigkeiten kommen. Lassen Sie uns das Problem untersuchen und die effizienteste Lösung finden.
Bedenken Sie den folgenden Codeausschnitt:
x = 0 y = 1 z = 3 mylist = [] if x or y or z == 0: mylist.append("c") if x or y or z == 1: mylist.append("d") if x or y or z == 2: mylist.append("e") if x or y or z == 3: mylist.append("f")
Die erwartete Ausgabe dieses Codes sollte sein:
["c", "d", "f"]
Aufgrund der Natur boolescher Ausdrücke wertet Python jedoch jede Seite des Operators „oder“ separat aus. Folglich führt dieser Code nicht zum gewünschten Ergebnis.
Um dieses Problem zu lösen, können Sie einen alternativen Ansatz verwenden, z. B. indem Sie jede Variable einzeln anhand des spezifischen Werts testen:
if x == 1 or y == 1 or z == 1: mylist.append("d")
Alternativ , können Sie einen Eindämmungstest für ein Tupel oder eine Menge verwenden:
if 1 in (x, y, z): mylist.append("d") # Or even more efficiently if 1 in {x, y, z}: mylist.append("d")
Sets bieten Mitgliedschaftstests zu konstanten Kosten, was sie zu einer optimalen Wahl dafür macht Szenario.
Es ist wichtig, sich daran zu erinnern, dass boolesche Ausdrücke einer Hierarchie von Operationen folgen, wobei Operatoren wie oder eine niedrigere Priorität haben als Vergleichsoperatoren wie ==. Wenn Sie diese Vorrangregeln verstehen, können Sie effektiveren und präziseren Code schreiben.
Das obige ist der detaillierte Inhalt vonWie kann man in Python mehrere Variablen effizient auf Gleichheit mit einem einzelnen Wert testen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!