なんかpythonのコード書いてて気付いたのでメモ。初歩的かつ常識的なテクニックかもしれませんが…
aという変数を、ある計算式の結果(some_condition + add_value)がCONSTANTより大きくなるのかならないのかで分岐させたい場合を考えます。
とりあえずif文で適当に書いてみる。
a = 0
if some_condition + add_value < CONSTANT:
a = some_condition + add_value
else:
a = CONSTANT
…さすがに冗長すぎる気がするので、初期化(変数宣言)のところにelseの動作をいれてみる。
a = CONSTANT
if some_condition + add_value < CONSTANT:
a = some_condition + add_value
これをやってみた後、やってることは some_condition + add_value と CONSTANTの比較だけなので、minを使って1行で済むことに気づきました。
a = min(some_condition + add_value, CONSTANT)
pythonには三項演算子がなくて条件分岐の時にコードが長くなりがちですが、min・maxを使えば多少コードがきれいにかけるのかも。