Pythonで2つのリストを辞書に変換する最も簡単な方法(zip関数の使い方)
Pythonで2つのリストを1つの辞書にマッピングする方法
Pythonでは、組み込みのzip()関数とdict()関数を組み合わせることで、2つのリストを簡単に1つの辞書へと変換できます。これが最もシンプルで定番の方法です。
基本的な手順
zip()関数を使うと、2つのリストから対応する要素をペアにしたタプルを返すイテレータ(zipオブジェクト)が生成されます。このzipオブジェクトを、組み込み関数であるdict()に渡すことで、キーと値のペアを持つ辞書に変換できます。
>>> l1 = ['name', 'age', 'marks']
>>> l2 = ['Ravi', 23, 56]
>>> z = zip(l1, l2)
>>> newdict = dict(z)
>>> newdict
{'name': 'Ravi', 'age': 23, 'marks': 56}
上記の例では、リストl1の各要素が辞書のキーとなり、リストl2の各要素がそれぞれ対応する値として設定されています。
ワンライナーでまとめて書くことも可能
中間変数を作らず、次のように1行で記述することもできます。
>>> newdict = dict(zip(l1, l2))
>>> newdict
{'name': 'Ravi', 'age': 23, 'marks': 56}
注意点
Python 3ではzip()はイテレータを返すため、結果は一度しか使用できません。後で再利用したい場合は、list(zip(l1, l2))のようにリスト化しておくと安心です。また、2つのリストの長さが異なる場合、zip()は短い方のリストに合わせて処理され、余分な要素は無視される点にも注意してください。
-
Pythonの辞書をJSON形式で出力・表示する方法
JSONとはJSON(JavaScript Object Notation)は、データをテキスト形式で表現するための軽量なデータ交換フォーマットです。Web APIや設定ファイルなど、さまざまな場面で広く利用されています。jsonモジュールとdumps()関数Pythonには標準ライブラリとしてjsonモジュールが用意されており、JSONデータのエンコード(書き出し)とデコード(読み込み)を簡単に行うことができます。このモジュールのdumps()関数を使用すると、Pythonの辞書オブジェクトをそのままJSON形式の文字列に変換できます。基本的な使い方D1={pen:25, pencil:10
-
Pythonで辞書の中に辞書を定義する方法(ネスト構造の作り方)
ネストした辞書とはPythonの辞書(dict)オブジェクトはミュータブル(変更可能)です。この特性により、ある辞書オブジェクトを別の辞書の「値」として格納することができます。つまり、キーに関連付けられた値として別の辞書を定義することで、ネストした(入れ子になった)辞書を作成できるのです。ネストした辞書の定義例以下の例では、学生ごとの情報(名前・年齢・科目・GPA)を、それぞれ独立した辞書として保持し、それらを外側の辞書の値にしています。>>> students = { student1: {name: Raaj, age: 23, subjects: [Phy, C