Powiel możliwe:
Python Ternary OperatorPythona odpowiednik krótkiej formie "jeśli" w C++
czy istnieje sposób napisać C/C++ kodu w Pythonie? a = (b == true ? "123" : "456")
Powiel możliwe:
Python Ternary OperatorPythona odpowiednik krótkiej formie "jeśli" w C++
czy istnieje sposób napisać C/C++ kodu w Pythonie? a = (b == true ? "123" : "456")
a = '123' if b else '456'
Ten potrójny operator został wprowadzony w Pythonie 2.5. –
dzięki! dokładnie to, czego szukałem. nie można go znaleźć na stronie Pythona docs. – huy
W celu późniejszego wykorzystania, oto dokumentacja Pythona dla wyrażenia warunkowego: http://docs.python.org/reference/expressions.html#boolean-operations –
Zobacz PEP 308 aby uzyskać więcej informacji.
Moje tajemnicze wersja ...
a = ['123', '456'][b == True]
To było jedno ze starych podejść, zanim wypowiedzenie jednoliniowe było możliwe, prawda? Tak jak można to zrobić logicznie: 'True i" foo "lub" bar " ' – jdi
Podczas a = 'foo' if True else 'bar'
jest bardziej nowoczesny sposób prowadzenia trójskładnikowej if (Python 2.5+), odpowiednik 1-do-1 od wersji może być:
a = (b == True and "123" or "456")
... co w Pythonie powinien być skrócony do:
a = b is True and "123" or "456"
... lub jeśli po prostu wan t przetestować prawdziwość wartości B w ogóle ...
a = b and "123" or "456"
? :
można dosłownie zamieniane na and or
Jakiego rodzaju jest czarna magia? Dzięki – Inversus
Powinienem zauważyć, że i tutaj, czy też tutaj, podejście może na ciebie popalić, jeśli wartość "123" byłaby w rzeczywistości pustym łańcuchem lub wartością fałszywą. The if ..else jest nieco bezpieczniejszy. – jdi
Schludnie! Dzięki za to. –
To się nazywa trójargumentowy-jeśli, tak przy okazji. http://en.wikipedia.org/wiki/%3F :, http://en.wikipedia.org/wiki/Ternary_operation – GManNickG
... lub "wyrażenie warunkowe" –