Python PR

【Python】辞書の要素を取得する方法

記事内に商品プロモーションを含む場合があります

この記事では、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を指定した場合、そのkeyNoneを要素として辞書に追加してNoneを返します。

dict.setdefault(key[, default])

defaultを指定した際に存在していないkeyの値を取得しようとした場合、そのkeydefaultを要素として辞書に追加して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()

辞書ビューオブジェクトとは、辞書のkeyvalueを取得するためのオブジェクトですが、辞書が変更された時、ビューはその変更を反映します。

辞書ビューオブジェクトでできること
  • 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()メソッドを使ってkeyvalueを全てタプルとして取得できます。

dict.items()

試しに全てのkeyvalueを取得してみます。

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の辞書の要素を取得する方法を紹介しました。

辞書はよく使うオブジェクトなので基本的な使い方は覚えておきましょう!

Link辞書(マップ)の使い方【dict】

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ