読者です 読者をやめる 読者になる 読者になる

or演算子を使った、ちょっと便利なショートカット

Pythonのちょっとした小ネタ。

if not a:
    a = []

これは変数aを評価した時にFalseになる0, False, None, [], {}, ()だった場合、空のリストを代入するもので、ちょこちょこ出てきます。
上記の式は、実は

a = a or []

と同値です。見た目にスッキリするだけでなく、より直感的に分かりやすいものになっています。
なぜこのようなことができるかと言うと、Pythonにおける``or``演算子はTrueかFalseを返すものではなく、オブジェクトそのものを返すという性質を持つためです。そして、左右ともFalseの場合は右のやつが返されます。
なので、

>>> {} or [] # 両方Falseだから右のやつが返される
[]
>>> [] or {}
{}
>>> 1 or False # 当然Trueのものがあればそれが返される
1
>>> False or 1
1

となります。
知ってると、ちょっと便利なショートカットですね。