Vergleich mehrerer Variablen mit einem einzelnen Wert
Problembeschreibung:
Suche nach einer Methode in Python kann ermitteln, ob mehrere Variablen einer bestimmten Ganzzahl entsprechen, und anschließend eine aus drei Buchstaben bestehende Zeichenfolge erzeugen. Zum Beispiel:
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 wäre eine Liste von ["c", "d", "f"].
Antwort:
Der bereitgestellte Code missversteht boolesche Ausdrücke in Python. Der ODER-Operator untersucht jede Seite separat, was zu der folgenden Auswertung führt:
(x == False or y == False) or (y == False or z == False)
Um zu überprüfen, ob mindestens eine Variable der gewünschten Ganzzahl entspricht, verwenden Sie den folgenden Ausdruck:
if 1 in (x, y, z): ....
Alternativ , für verbesserte Effizienz:
if 1 in {x, y, z}: ....
Erklärung:
Operatoren haben in Python Vorrang, und der Operator or hat eine niedrigere Priorität als Gleichheit (=). Daher wird zunächst die Gleichheit bewertet. Darüber hinaus gibt der Operator or den ersten gefundenen Wahrheitswert zurück. Das bedeutet, dass die Codesequenz:
x or y or z == 0
False zurückgeben würde, wenn x nicht 0 wäre, selbst wenn y oder z es wären. Um mehrere Variablen korrekt anhand eines einzelnen Werts auszuwerten, verwenden Sie einen Ausdruck wie:
x == 1 or y == 1 or z == 1
Das obige ist der detaillierte Inhalt vonWie kann man mehrere Python-Variablen effizient mit einem einzigen ganzzahligen Wert vergleichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!