三項演算子

個人的にあまり使用しないのですが、サイト内検索でよく指定されるキーワードなので三項演算子について解説しようと思います。

Pythonの三項演算子

Pythonの三項演算子は以下の通りif-elseを使用します。

三項演算子
条件が真の場合の値 if 条件 else 条件が偽の場合の値

サンプルコードです。

age=10
is_adult = "大人です" if age >= 20 else "未成年です"
print(is_adult) # 未成年です

age=30
is_adult = "大人です" if age >= 20 else "未成年です"
print(is_adult) # 大人です

英語の通りなのでC言語などの?:と比べるとわかりやすいですね。

シーケンスの利用

真偽値は整数を継承しているため、Pythonにはこれを利用したテクニックが存在します。

三項演算子 補足
(条件が偽の場合の値, 条件が真の場合の値)[条件]

偽の場合は0、真の場合は1として扱われるためこのような書き方ができるわけですね。

サンプルコードです。

age = 10
is_adult = ("未成年です", "大人です")[age >= 20]
print(is_adult) # 未成年です

age = 30
is_adult = ("未成年です", "大人です")[age >= 20]
print(is_adult) # 大人です

if-elseがあるので積極的に使用する必要は全く無いのですが、人が書いたコードを読みとく際に知っておくと役に立つかもしれません。

どうしてこのようなトリッキーな書き方をするのかなのですが、Python2.4より前は三項演算子がなかったため、このような書き方がされていたことが理由のようです。