文法・環境 辞書

【python】辞書(dict)のキー(key)と値(value)の取得方法

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で辞書を扱う際の基本的な操作になるので、是非使い方を覚えておくようにしましょう。

スポンサーリンク

-文法・環境, 辞書
-,