web-dev-qa-db-de.com

Einstellung für bedingte Python-Variablen

Aus irgendeinem Grund kann ich mich nicht daran erinnern, wie ich das tun soll. Was ich meine ist das:

 value = 'Test' if 1 == 1

Wobei hoffentlich value auf 'Test' gesetzt wird, wenn die Bedingung (1 == 1) wahr ist. Und damit wollte ich auf mehrere Bedingungen testen, um verschiedene Variablen einzustellen, wie zum Beispiel:

 value = ('test' if 1 == 1, 'testtwo' if 2 == 2)

Und so weiter für ein paar Bedingungen. Ist das möglich?

22
SolarLune

Dies ist das, was dem, was Sie suchen, am nächsten kommt:

value = 'Test' if 1 == 1 else 'NoTest'

Ansonsten gibt es nicht viel anderes.

40
Donald Miner

Sie können auch tun:

value = (1 == 1 and 'test') or (2 == 2 and 'testtwo') or 'nope!'

Ich bevorzuge diesen Weg: D

1

value = [1, 2][1 == 1];)

... nun, ich denke, das würde auch funktionieren: value = ['none true', 'one true', 'both true'][(1 == 1) + (2 == 2)]

Nicht gerade gute Programmierpraxis oder lesbarer Code, aber zumindest amüsant und kompakt. Python behandelt Boolesche Werte als Zahlen, also ist True 1 und False 0. [1, 2][True] = 2, [1, 2][False] = 1 Und [1, 2, 3][True + True] = 3

0
Pinja Pessi