この記事では、Python で辞書の要素を取得する方法を解説します。
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')])