座敷牢日誌

都落ちした元SEがソフトウェアやネット関連のことを書いています

pythonのリストの添字にBoolean

pythonのコードをだら見していて、リストの添字にBooleanを指定しているコードを見つけた。

self._screen_file = [sys.stdout, sys.stderr][params.get('logtostderr', False)]

これなんだろうなあと思って調べてみると、要するに「True」は「1」、「False」は「0」ということらしい。

import sys
l = [sys.stdout, sys.stderr]
print l[True]
print l[False]

# [結果]
# <open file '<stderr>', mode 'w' at 0xb730d0d0>
# <open file '<stdout>', mode 'w' at 0xb730d078>

そういえばそうだったなという話だけど、覚えておくと可読性を改善する一つのネタになるかもしれない。

広告を非表示にする