はじめに
Atcoderで問題を解いていた時、
"ある条件が真の場合は変数+1
,偽の場合は変数-1
"
としたい時、下記のように記載していましたが、
三項演算子で1行でまとめられないかと考えました。
sample1.py
if a < b:
x += 1
else:
x -= 1
環境
Python 3.7.0
結論
=
のところを+=
や*=
のように代入演算子に置き換えると演算が行われます。
sample2.py
x += 1 if a <= b else -1
軽く試してみた感じ、代入演算子は一通り使えそうです
+=,-=,*=,/=,%=,**=,//=,&=,|=,^=,<<=,>>=
おまけ
関数を設定することも可能なようです。
sample2.py
hoge() if flag1 else piyo()
おわりに
三項演算子は=
による代入しかできないと思ってました。
やってみるものですね。