pythonで、辞書のキー(key)と値(value)を取得する方法について紹介します。
この記事で分かること
■辞書のキーと値を両方取得する方法
■辞書のキーを取得する方法
- 全てのキーを取得
- 特定の値に対応するキーを取得
■辞書の値を取得する方法
- 全ての値を取得
- 特定のキーに対応する値を取得
スポンサーリンク
辞書のキー(key)と値(value)を両方取得
はじめに、pythonの辞書のキー(key)と値(value)を両方取得する方法について紹介します。
辞書のitemメソッドを用いると、キー(key)と値(value)を両方取得できます。
書き方
辞書.items()
以下、辞書のitemsメソッドのサンプルコードです。
### 辞書のitemsメソッドで、キーと値を両方取得
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100, 'Grape':500}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Grape': 500}
print(fruits_dict.items())
# dict_items([('Apple', 100), ('Banana', 200), ('Orange', 100), ('Grape', 500)])
> print(fruits_dict.items())
辞書にitemsメソッドを適用して、printで確認しています。
itemsメソッドの返り値は、dict_items型というデータ型になっています。
このままのデータ型では扱いにくいですが、list関数でリスト型に型変換できます。
### dict_items型をリスト型に変換
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100, 'Grape':500}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Grape': 500}
print(list(fruits_dict.items()))
# [('Apple', 100), ('Banana', 200), ('Orange', 100), ('Grape', 500)]
print(list(fruits_dict.items())[1])
# ('Banana', 200)
また、dict_items型のままでも、
for文を用いればデータを取り出すことができます。
### dict_items型のデータをfor文で取得
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100, 'Grape':500}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Grape': 500}
for key, value in fruits_dict.items():
print(f'key:{key}, value:{value}')
# key:Apple, value:100
# key:Banana, value:200
# key:Orange, value:100
# key:Grape, value:500
> for key, value in fruits_dict.items()
itemsメソッドで、辞書のキーと値をdict_item型の返り値として取得し、key、valueの変数にそれぞれ渡しています。
スポンサーリンク
辞書のキー(key)を取得
次に、辞書のキー(key)を取得する方法を紹介します。
全てのキー(key)を取得する方法と、
特性の値(value)に対応するキー(key)を取得する方法について、分けて紹介します。
辞書のキー(key)の一覧を取得する方法【全て、複数】
辞書のキー(key)の一覧は、keysメソッドで取得できます。
書き方
辞書.keys()
以下、辞書のキーの一覧を取得するサンプルコードです。
### 辞書のキー一覧を取得
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100, 'Grape':500}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Grape': 500}
print(fruits_dict.keys())
# dict_keys(['Apple', 'Banana', 'Orange', 'Grape'])
> print(fruits_dict.keys())
辞書にkeysメソッドを適用して、printで確認しています。
keysメソッドの返り値は、dict_keys型というデータ型になっています。
前述のitemsメソッドと同様に、list関数でリスト型に型変換できます。
### dict_keys型をリスト型に変換
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100, 'Grape':500}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Grape': 500}
print(list(fruits_dict.keys()))
# ['Apple', 'Banana', 'Orange', 'Grape']
print(list(fruits_dict.keys())[1])
# Banana
こちらも、前述のitemsメソッドと同様、
dict_keys型のままでも、for文を用いればデータを取り出すことができます。
### dict_keys型のデータをfor文で取得
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100, 'Grape':500}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Grape': 500}
for key in fruits_dict.keys():
print(key)
# Apple
# Banana
# Orange
# Grape
辞書の特定のキー(key)を取得する方法
次に、特定の値に対応するキー(key)を取得する方法を紹介します。
以下のサンプルコードでは、
"if 条件式" を含むリスト内包表記を用いることで、特定の値に対応するキーを取得しています。
### 特定の値に対応するキーを取得
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100, 'Grape':500}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Grape': 500}
keys = [key for key, value in fruits_dict.items() if value == 100]
print(keys)
# ['Apple', 'Orange']
> keys = [key for key, value in fruits_dict.items() if value == 100]
"if 条件式" を含むリスト内包表記の構文になっています。
dict_items型のデータから、keyとvalueの変数名で、それぞれキーと値を渡しています。
value == 100の判定が真になる、keyを要素としたリストを新たに作成しています。
この処理を行うことで、特定の値に対応するキーを取得しています。
補足的な内容ですが、
このリスト内包表記の記述は、関数化しておくと便利に使える場合があります。
以下、サンプルコードです。
### 特定の値に対応するキーを取得する関数を定義
def get_key(d, val_search):
keys = [key for key, value in d.items() if value == val_search]
if keys :
return keys
else :
return None
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100, 'Grape':500}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Grape': 500}
key1 = get_key(fruits_dict, 200)
print(key1)
# ['Banana']
key2 = get_key(fruits_dict, 150)
print(key2)
# None
なお、リスト内包表記については、下記の記事で詳しく紹介しています。
興味のある方は、参考にしてみてください。
スポンサーリンク
辞書の値(value)を取得
次に、辞書の値(value)を取得する方法を紹介します。
全ての値(value)を取得する方法と、
特性のキー(key)に対応する値value)を取得する方法について、分けて紹介します。
辞書の値(value)の一覧を取得する方法【全て、複数】
辞書の値(value)の一覧は、valuesメソッドで取得できます。
書き方
辞書.values()
以下、辞書の値の一覧を取得するサンプルコードです。
### 辞書の値一覧を取得
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100, 'Grape':500}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Grape': 500}
print(fruits_dict.values())
# dict_values([100, 200, 100, 500])
> print(fruits_dict.values())
辞書にvaluesメソッドを適用して、printで確認しています。
valuesメソッドの返り値は、dict_values型というデータ型になっています。
前述のkeysメソッドと同様に、list関数でリスト型に型変換できます。
### dict_keys型をリスト型に変換
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100, 'Grape':500}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Grape': 500}
print(list(fruits_dict.values()))
# [100, 200, 100, 500]
print(list(fruits_dict.values())[1])
# 200
こちらも、前述のkeysメソッドと同様、
dict_values型のままでも、for文を用いればデータを取り出すことができます。
### dict_values型のデータをfor文で取得
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100, 'Grape':500}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Grape': 500}
for value in fruits_dict.values():
print(value)
# 100
# 200
# 100
# 500
辞書の特定の値(value)を取得する方法
次に、特定の値に対応する値(value)を取得する方法を紹介します。
辞書に対してキーを指定すると、対応する値を取得できます。
書き方
辞書[ キー ]
以下、辞書の特定の値を取得するサンプルコードです。
### 辞書のキーを指定して、値を取得
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100, 'Grape':500}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Grape': 500}
print(fruits_dict['Banana'])
# 200
上記の方法で値を取得する場合、存在しないキーを指定すると、"KeyError"が発生し、エラー停止します。
エラー停止させたくない場合は、getメソッドを使用します。
存在しないキーを指定した場合は、デフォルト値が返されます。なお、デフォルト値は省略可能です。
書き方
辞書.get( キー, デフォルト値)
以下、getメソッドのサンプルコードです。
### 辞書のgetメソッド
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100, 'Grape':500}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Grape': 500}
print(fruits_dict.get('Banana'))
# 200
print(fruits_dict.get('Lemon'))
# None
print(fruits_dict.get('Lemon', 0))
# 0
スポンサーリンク
まとめ
pythonで、辞書のキー(key)と値(value)を取得する方法について紹介しました。
pythonで辞書を扱う際の基本的な操作になるので、是非使い方を覚えておくようにしましょう。
スポンサーリンク