keyとして使えるものは?
pythonのdictはhashableなオブジェクトのみをkeyとして使用することができる。lifetimeの間hash valueが変更されないオブジェクトのことをhashableという。
- hasableなオブジェクト:Most of Python’s immutable built-in objects are hashable
mutableとimmutableとは
値を変更できるオブジェクトのことをmutableと呼び、生成後に値を変更できないオブジェクトのことをimmutableと呼ぶ。オブジェクトがmutableかどうかはその型(type)によって決まる。
- immutableの例:数値型、文字列型、タプル型
- mutableの例:dict、list
dictに対する操作
keyに対する操作
- keyの一覧をリストとして取得する
list(d)
- あるkeyを消す
del d[key]
- あるkeyがdictに存在するかを確認する
key in d
valueに対する操作
- あるkeyに対応するvalueを取得する、ただし存在しなくてもerrorを吐かないようにする
keyが存在しない場合は、defaultの値が出力される
d.get(key, default=None)
View Objects
dict.keys()、dict.values()、dict.items()の返り値は標準のlist objectではなく、view objectである。view objectは動的なオブジェクトであり、リアルタイムのdictionaryの情報を反映する。
- dict.keys():keyの一覧を取得する
- dict.values():valueの一覧を取得する
- dict.items():(key, value)の一覧を取得する
d = { "pen": 1, "apple": 2, "orange": 3 }
print("dict.keys()", d.keys())
print("dict.values()", d.values())
print("dict.items()", d.items())
>> 出力
dict.keys() dict_keys(['pen', 'apple', 'orange'])
dict.values() dict_values([1, 2, 3])
dict.items() dict_items([('pen', 1), ('apple', 2), ('orange', 3)])