valueが最大値、最小値のkeyを取得
max(dict)とするとkeyの最大値を取得してしまうためmax(dict, key=dict.get)とする
d = {'a': 5, 'b': 3, 'c': 4}
print(max(d))
print(max(d, key=d.get))
実行結果
c
a
minも同様にして取得できる
d = {'a': 5, 'b': 3, 'c': 4}
print(min(d))
print(min(d, key=d.get))
実行結果
a
b
valueの値でソートする
sorted(dict)とするとkey基準でソートされる。valueの値でソートする場合は以下のようにする。
reverse=Trueで降順
print(dict(sorted(d.items(), key=lambda x: x[1])))
print(dict(sorted(d.items(), key=lambda x: x[1], reverse=True)))
実行結果
{'b': 3, 'c': 4, 'a': 5}
{'a': 5, 'c': 4, 'b': 3}
valueの合計の取得
valuesに対してsumを使う
print(sum(d.values()))
実行結果
12
存在しないkeyを参照した時にエラーを出さないようにする
d.get(key)を使用する
print(d.get('d'))
実行結果
None
defaultdictを使用する
from collections import defaultdict
d_i = defaultdict(int)
print(d_i['a'])
d_l = defaultdict(list)
print(d_l[0])
実行結果
0
[]
defaultdictの引数には初期化時に実行する関数を指定する。