この記事では、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の辞書の要素を取得する方法を紹介しました。
辞書はよく使うオブジェクトなので基本的な使い方は覚えておきましょう!
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ