1. ホーム
  2. python

[解決済み] Pythonの条件付き演算子?[重複しています]

2022-03-09 17:54:24

質問

に基づいて値を返すために、PythonがC++のような何らかのキーワードや式をサポートしているかどうかご存知ですか? if の条件を、すべて同じ行に記述します (C++ の if をクエスチョンマークで表現しています。 ? )

// C++
value = ( a > 10 ? b : c )

解決方法は?

Python 2.5以降では可能です。

value = b if a > 10 else c

以前は、次のようなことをしなければなりませんでしたが、短絡的な効果が失われるため、意味的には同じではありません。

value = [c, b][a > 10]

他にも「and ... or」を使ったハックがありますが、状況によっては好ましくない挙動をし、見つけにくいバグにつながる可能性があるので使わない方がよいでしょう。使わない方がいいと思うので、ここではそのハックを書きませんが、以下のサイトで読むことができます。 ウィキペディア をご覧ください。