Ruby脳でPython書いてた時に下記の壁にあたった
※ Pythonは2.7.10を使っている
Rubyの時
> hash = { a: 'a!' } # => {:a=>"a!"} > hash[:a] # => "a!" > hash[:b] # => nil
Pythonの時
>>> dict = { 'a': 'a!' } >>> dict['a'] 'a!' >>> dict['b'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'b'
なるほど。参照しないKeyを参照しようとすると例外をはいてくるのか
Rubyの時のように存在しないKeyを参照したらNone
を返してほしい
ドキュメントを見るとget()なるものがあるらしい
第一引数に参照したいKey、第二引数に存在しない場合のデフォルト値を設定できる。何も設定しない場合はNone
になる
>>> dict = { 'a': 'a!' } >>> dict['a'] 'a!' >>> dict.get('b') >>>