文法・環境 組み込み関数 辞書

【python】リスト(list)、タプル(tuple)から辞書(dict)へ変換

本記事では、リストとタプルを辞書へ変換する方法について紹介します。

本記事では、以下の内容について紹介しています。

この記事で分かること

■リストから辞書へ変換する方法

  • 1つの2次元リストから辞書へ変換【dict関数】
  • 2つのリストから辞書へ変換【zip関数とdict関数の組合せ】
  • 2つのリストから辞書へ変換【zip関数と内包表記の組合せ】
  • 2つのリストから辞書へ変換【if + 条件式と組合せ】

■タプルから辞書へ変換する方法

スポンサーリンク

リスト(list)を辞書(dict)へ変換

リストから辞書へ変換する方法について、紹介します。

基本的にはタプルから辞書への変換についても、同じ方法で対応できます。

2次元リストから辞書へ変換【dict関数】

はじめに、"キーと値の組合せたリスト" を要素にもつ、2次元のリスト辞書へ変換する方法について紹介します。

pythonの組み込み関数のdict関数を用いて辞書に変換できます。

以下、dict関数を用いて、2次元リストを辞書へ変換するサンプルコードです。

### 2次元リストから辞書へ変換【dict関数】
fruits_list = [['Apple',100], ['Banana',150], ['Grape',500]]
print(fruits_list)
# [['Apple', 100], ['Banana', 150], ['Grape', 500]]

fruits_dict = dict(fruits_list)

print(fruits_dict)
# {'Apple': 100, 'Banana': 150, 'Grape': 500}
print(type(fruits_dict))
# <class 'dict'>

> fruits_dict = dict(fruits_list)

2次元リストを、dict関数の引数に渡すだけで、辞書に変換できます。

2つのリストから辞書へ変換【zip関数とdict関数の組合せ】

次に、キーだけを要素に持つリストと、値だけを要素に持つリスト、この2つのリストを辞書に変換する方法を紹介します。

以下、zip関数とdict関数を用いて、2つのリストを辞書に変換するサンプルコードです。
zip関数を用いることで、引数に渡した2つのリストの要素を同時に取り出すことができます。

### 2つのリストを辞書へ変換
fruits_list = ['Apple', 'Banana', 'Grape', 'Peach', 'Melon']
prices_list = [100, 150, 500, 200, 1000]

fruits_dict = dict(zip(fruits_list, numbers_list))

print(fruits_dict)
# {'Apple': 100, 'Banana': 150, 'Grape': 500, 'Peach': 200, 'Melon': 1000}
print(type(fruits_dict))
# <class 'dict'>

zip関数の使い方については、下記の記事で紹介しています。

zip関数の基本的な使い方

スポンサーリンク

2つのリストから辞書へ変換【zip関数と内包表記の組合せ】

dict関数の代わりに辞書内包表記を用いても、2つのリストから辞書へ変換することができます

以下、zip関数と内包表記を用いて、2つのリストを辞書に変換するサンプルコードです。

### 2つのリストを辞書へ変換
fruits_list = ['Apple', 'Banana', 'Grape', 'Peach', 'Melon']
prices_list = [100, 150, 500, 200, 1000]

fruits_dict = { fruit:price for fruit, price in zip(fruits_list, prices_list)} 

print(fruits_dict)
# {'Apple': 100, 'Banana': 150, 'Grape': 500, 'Peach': 200, 'Melon': 1000}
print(type(fruits_dict))
# <class 'dict'>

> fruits_dict = { fruit:price for fruit, price in zip(fruits_list, prices_list)}

zip関数を用いて、fruits_list と prices_list の 2つのリストから同時に要素を取得し、変数fruit、priceに渡しています。
この変数のfruitをキー、priceを値として新たな辞書を作成しています。

内包表記については、下記の記事で紹介しています。

内包表記の基本的な使い方

2つのリストから辞書へ変換【if + 条件式と組合せ】

2つのリストから辞書へ変換する際に、条件を満たす要素のみを辞書へ変換する方法を紹介します。

前述の内包表記に、if + 条件式 を追加しています。

### 2つのリストのうち、条件に当てはまった要素を辞書に変換
fruits_list = ['Apple', 'Banana', 'Grape', 'Peach', 'Melon']
prices_list = [100, 150, 500, 200, 1000]

fruits_dict = {fruit:price for fruit, price in zip(fruits_list, prices_list) if price >= 500} 

print(fruits_dict)
# {'Grape': 500, 'Melon': 1000}
print(type(fruits_dict))
# <class 'dict'>

タプル(tuple)を辞書(dict)へ変換

タプルから辞書への変換も、リストから辞書と同じ方法で変換できます。

以下、 zip関数と内包表記を用いて、2つのタプルを辞書に変換するサンプルコードです

### 2つのリストを辞書へ変換
fruits_tuple = ('Apple', 'Banana', 'Grape')
prices_tuple = (100, 150, 500)
print(type(fruits_tuple))
# <class 'tuple'>

fruits_dict = {fruit:price for fruit, price in zip(fruits_tuple, prices_tuple)} 

print(fruits_dict)
# {'Apple': 100, 'Banana': 150, 'Grape': 500}
print(type(fruits_dict))
# <class 'dict'>

リストと同じ方法で、タプルから辞書へ変換できています。

スポンサーリンク

まとめ

リストとタプルを辞書へ変換する方法について紹介しました。

リストやタプルを辞書へ変換する際には、zip関数や内包表記の使い方を覚えておくと便利です。

是非、zip関数や内包表記の使い方などの関連記事も確認してみてください。

スポンサーリンク

-文法・環境, 組み込み関数, 辞書
-, ,