この記事では、Pythonの辞書の要素を取得する方法を解説します。
クイック
keyからvalue
d = {'key1': 1, 'key2': 2, 'key3': 3} # dict[key] d['key1'] # 1 # dict.get()メソッド d.get('key1') # 1 d.get('key4') # None d.get('key4', 4) # 4 # dict.setdefault()メソッド d.setdefault('key1') # 1 d.setdefault('key4') # 'key4': None の追加 d.setdefault('key5', 5) # 'key4': 5 の追加
アンパック
d = {'one': 1, 'two': 2, 'three': 3} k1, k2, k3 = d # one two three
辞書ビューオブジェク
d = {'name': '田中太郎', 'age': 20, 'gender': '男'} d.keys() # dict_keys(['name', 'age', 'gender']) d.values() # dict_values(['田中太郎', 20, '男']) d.items() # dict_items([('name', '田中太郎'), ('age', 20), ('gender', '男')])
keyからvalueを取得
辞書のkeyからvalueを取得する方法を紹介します。
dict[key]
[]を辞書の後ろに付けてアクセスしたいkeyを指定します。
dict[key]
試しにkeyからvalueを取得してみます。
d = {'key1': 1, 'key2': 2, 'key3': 3} print(d['key1']) print(d['key2']) print(d['key3'])
実行結果
1 2 3
getメソッド
get()メソッドを使用することでkeyからvalueを取得できます。この方法では、存在していないkeyを指定してもエラーになりません。
dict.get(key[, default])
存在していないkeyが指定された場合はNoneが返されます。default引数が指定されている場合は、その値が返されます。
get()メソッドを使って値を取得してみます。
d = {'key1': 1, 'key2': 2, 'key3': 3} print(d.get('key1')) # 存在してない key を指定してみる print(d.get('key4')) # 存在してない key + default の指定 print(d.get('key4', 4))
実行結果
1 None 4
setdefaultメソッド
setdefault()メソッドは、keyからvalueを取得できます。存在していないkeyを指定した場合、そのkeyとNoneを要素として辞書に追加してNoneを返します。
dict.setdefault(key[, default])
defaultを指定した際に存在していないkeyの値を取得しようとした場合、そのkeyとdefaultを要素として辞書に追加してdefaultを返します。
d = {'key1': 1, 'key2': 2, 'key3': 3} print(d.setdefault('key1')) # 存在してない key を指定してみる print(d.setdefault('key4')) print(d) # 存在してない key + default の指定 print(d.setdefault('key5', 5)) print(d)
実行結果
1 None {'key1': 1, 'key2': 2, 'key3': 3, 'key4': None} 5 {'key1': 1, 'key2': 2, 'key3': 3, 'key4': None, 'key5': 5}
要素をバラバラに取得: アンパック
以下のように記述することでkeyをアンパックできます。
d = {'one': 1, 'two': 2, 'three': 3} # アンパック k1, k2, k3 = d print(k1, k2, k3)
実行結果
one two three
関数に渡す際は**を変数の前に付けます。
d = {'one': 1, 'two': 2, 'three': 3} def func(one, two, three): print(one) print(two) print(three) # この呼び出しは、「func(one=1, two=2, three=3)」と等価 func(**d)
実行結果
1 2 3
辞書ビューオブジェクトを使った要素の取得
以下の3つの関数は辞書ビューオブジェクトを返します。
- dict.keys()
- dict.values()
- dict.items()
辞書ビューオブジェクトとは、辞書のkeyやvalueを取得するためのオブジェクトですが、辞書が変更された時、ビューはその変更を反映します。
- for文で使う
- リストに変換する
- in演算子で特定の要素を含むか判定する
- 逆順にする
keyのみ取得: keysメソッド
keys()メソッドを使うことでkeyを全て取得できます。
dict.keys()
試しに全てのkeyを取得してみます。
d = {'name': '田中太郎', 'age': 20, 'gender': '男'} # key を格納したビューオブジェクト keys = d.keys() print(keys) # 要素の追加 d['form'] = 'Japan' print(keys)
実行結果
dict_keys(['name', 'age', 'gender']) dict_keys(['name', 'age', 'gender', 'form'])
valueのみ取得: valuesメソッド
values()メソッドを使ってvalueのみを全て取得できます。
dict.values()
試しに全てのvalueを取得してみます。
d = {'name': '田中太郎', 'age': 20, 'gender': '男'} # key を格納したビューオブジェクト values = d.values() print(values) # 要素の追加 d['form'] = 'Japan' print(values)
実行結果
dict_values(['田中太郎', 20, '男']) dict_values(['田中太郎', 20, '男', 'Japan'])
keyとvalueを取得: itemsメソッド
items()メソッドを使ってkeyとvalueを全てタプルとして取得できます。
dict.items()
試しに全てのkeyとvalueを取得してみます。
d = {'name': '田中太郎', 'age': 20, 'gender': '男'} # key を格納したビューオブジェクト items = d.items() print(items) # 要素の追加 d['form'] = 'Japan' print(items)
実行結果
dict_items([('name', '田中太郎'), ('age', 20), ('gender', '男')]) dict_items([('name', '田中太郎'), ('age', 20), ('gender', '男'), ('form', 'Japan')])
まとめ
この記事では、Pythonの辞書の要素を取得する方法を紹介しました。
辞書はよく使うオブジェクトなので基本的な使い方は覚えておきましょう!
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ


