私はいくつかの変数を持っています。最初のものをTrueに評価するか、それ以外の場合はデフォルト値を返します。真に評価する最初の変数を選択するPythonic方法
たとえば、私はa
,b
およびc
を持っています。私の既存のコード:
result = a if a else (b if b else (c if c else default))
私が考えていたもう一つのアプローチ:
result = ([v for v in (a, b, c) if v] + [default])[0]
しかし、彼らの両方が乱雑に感じるので、より多くのPython的な方法はありますか?
私は "pythonic"について知らないけど、最初のものは好きです。素敵でリスピーで読みやすい。 – mtvee
「定義済み」はどういう意味ですか?たとえばbが未定義の場合、NameErrorが返されます。あなたのコードは、変数が定義されているが空/ゼロ/偽であるかどうかをチェックします。 –
Pythonでは変数を定義しないので、オブジェクトに名前をバインドすることに注意してください。 –