最近、辞書(dict)の使い方について整理して学んだので、自分用のメモとしてまとめておきます。特にメソッドの使い方は、書き方を間違えやすいところもあるので、例と一緒に確認できるようにしました。
dict.items():キーと値のペアを取得する
辞書の中の「キーと値のセット」をすべて取得したいときに使います。返ってくるのは (キー, 値) のタプルのリストのようなものです。
d = {'apple': 100, 'banana': 200}
for k, v in d.items():
print(f'{k} は {v} 円')
apple は 100 円
banana は 200 円
dict.keys():キーだけを取得する
辞書の中の「キー」だけを取り出したいときに使います。
d = {'a': 1, 'b': 2}
for k in d.keys():
print(k)
a
b
dict.values():値だけを取得する
辞書の中の「値」だけを取得したいときに使います。
d = {'a': 1, 'b': 2}
for v in d.values():
print(v)
1
2
dict.get():キーがなくてもエラーを出さずに値を取得する
指定したキーが存在しない場合でも、None を返してくれる便利なメソッドです。第二引数にデフォルト値を指定することもできます。
d = {'name': 'Alice'}
print(d.get('name')) # → 'Alice'
print(d.get('age')) # → None
print(d.get('age', 20)) # → 20
Alice
None
20
dict.update():辞書の中身をまとめて追加・上書きする
別の辞書の内容を現在の辞書に追加したり、同じキーがあれば上書きしたりできます。
d = {'a': 1, 'b': 2}
d.update({'b': 3, 'c': 4})
print(d)
{'a': 1, 'b': 3, 'c': 4}
dict.pop():指定したキーの要素を削除して、その値を返す
指定したキーの要素を辞書から削除し、対応する値を返します。
d = {'x': 10, 'y': 20}
value = d.pop('x')
print(value)
print(d)
10
{'y': 20}
dict.clear():辞書を空にする
すべての要素を削除して、空の辞書にします。
d = {'x': 1, 'y': 2}
d.clear()
print(d)
{}
dict.setdefault():キーがなければ追加、あればその値を返す
指定したキーが辞書になければ、そのキーと値を追加します。すでに存在していればその値を返します。
d = {'name': 'Bob'}
result1 = d.setdefault('name', 'Unknown') # すでにある → そのまま
result2 = d.setdefault('age', 30) # なかった → 追加される
print(result1)
print(result2)
print(d)
Bob
30
{'name': 'Bob', 'age': 30}
おわりに
dict のメソッドはいろいろありますが、特によく使うのは items(), get(), update() あたりだと感じました。間違えて使うと意図しない結果になることもあるので、コード例と一緒に覚えておくと便利です。
他にも辞書の扱いでつまずいたところがあれば、また追記していきたいと思います。
参考資料