pythonかじりが勘違いしやすい辞書おさらい

Pythonのdic.get()メソッドは勘違いしやすい

get()メソッドは辞書にキーがあってもなくても値を返す

get()メソッドはとじかっこに()を使っていますが、新しくキーと値を追加するときにはdic[ ]と違うかっこになっているのでわかりにくいです。get()メソッドの挙動は辞書に値がなかったら、通常はNoneを返すようですが、引数に値を設定していたら値を返します。また辞書にキーがあった場合はその辞書の値が返ってきます。

口に出すと意味がわかりにくいですね。get()はただ単にキーがあったら返す、なかったら返さないというキー探しをしているのではなく、キーがあったら返すということを利用して、他のことに利用するテクニックがあるようです。

Pythonのdic.get()メソッドを使ったコード

dic = {'name':'hoge','color':'red'}
print(dic.get('name','foo'))#hoge 登録されている場合は値を返す
print(dic.get('age', 10))#10
print(dic.get('age'))#None

dic['age'] = 10
print(dic)#{'name': 'hoge', 'color': 'red', 'age': 10}

辞書はpythonかじりにとって敬遠しやすい内容だと思いますので基本はしっかりとおさえておきたいところです。