Eventuali duplicati:
Python Ternary OperatorPython-equivalente di forma abbreviata "se" in C++
C'è un modo per scrivere questo codice C/C++ in Python? a = (b == true ? "123" : "456")
Eventuali duplicati:
Python Ternary OperatorPython-equivalente di forma abbreviata "se" in C++
C'è un modo per scrivere questo codice C/C++ in Python? a = (b == true ? "123" : "456")
a = '123' if b else '456'
Questo operatore ternario è stato introdotto in Python 2.5. –
grazie! esattamente quello che stavo cercando. non è riuscito a trovarlo sul sito Web di python docs. – huy
Per riferimento futuro, ecco la documentazione di Python per l'espressione condizionale: http://docs.python.org/reference/expressions.html#boolean-operations –
Vedi PEP 308 per maggiori informazioni.
La mia versione criptico ...
a = ['123', '456'][b == True]
Questo era uno dei vecchi approcci prima che l'affermazione su riga singola fosse possibile, giusto? Un po 'come come si può fare con logico: 'Vero e" foo "o" bar "' – jdi
Mentre a = 'foo' if True else 'bar'
è il modo più moderno di fare ternario if (Python 2.5+), un equivalente 1-a-1 della versione potrebbe essere:
a = (b == True and "123" or "456")
... che in Python dovrebbe essere ridotto a:
a = b is True and "123" or "456"
... o se semplicemente wan t per testare la veridicità del valore di b in generale ...
a = b and "123" or "456"
? :
può letteralmente essere scambiati per and or
Si chiama ternario-se, tra l'altro. http://en.wikipedia.org/wiki/%3F :, http://en.wikipedia.org/wiki/Ternary_operation – GManNickG
... o "espressione condizionale" –