web-dev-qa-db-ja.com

PythonでC ++の短い形式の「if」に相当

可能性のある複製:
Python Ternary Operator

このC/C++コードをPythonで書く方法はありますか? a = (b == true ? "123" : "456" )

108
huy
a = '123' if b else '456'
201
SilentGhost

a = 'foo' if True else 'bar'は、三項のifステートメント(python 2.5以降)を実行するより現代的な方法ですが、バージョンの1対1の同等物は次のようになります。

a = (b == True and "123" or "456" )

... pythonの短縮形:

a = b is True and "123" or "456"

...または単にbの値の真実性を一般的にテストしたい場合...

a = b and "123" or "456"

? :は文字通りand orに交換できます

18
jdi

私の謎めいたバージョン...

a = ['123', '456'][b == True]
15
Socram

詳細については、 PEP 308 を参照してください。

1
ghostdog74