Pythonのzip()関数で辞書とリストを組み合わせる方法
Pythonのzip()関数で辞書とリストを組み合わせる方法
Pythonでは、組み込み関数zip()を使うことで、辞書のキーと値のペア(key-value pair)と、リスト内の対応する要素を1つずつペアにしてまとめることができます。複数のシーケンスを並行して処理したい場合に非常に便利な機能です。
基本的な使い方
まず、辞書のitems()メソッドでキーと値のペアを取得し、それをzip()に渡します。
>>> dictionary = {'A': 1, 'B': 2, 'C': 3}
>>> num_list = [1, 2, 3]
>>> zipped = zip(dictionary.items(), num_list)
>>> zipped
<zip object at 0x000000886641B9C8>zip()が返すのは「zipオブジェクト」と呼ばれるイテレータです。この時点ではまだデータは取り出されておらず、必要なタイミングで要素を順番に生成する仕組み(遅延評価)になっています。そのため、そのまま表示しても中身は確認できません。
zipオブジェクトをリストに変換する
zipオブジェクトをlist()で変換すると、実際の中身を確認できます。
>>> list(zipped)
[(('A', 1), 1), (('B', 2), 2), (('C', 3), 3)]出力を見ると、辞書の各キーと値のタプル ('A', 1) などが、リストの対応する位置にある要素 1 とペアになり、新しいタプルとして格納されていることがわかります。
注意点:イテレータは一度しか使えない
zipオブジェクトはイテレータのため、一度list()などで消費すると、同じオブジェクトから再度要素を取得することはできません。結果を何度も使いたい場合は、次のように最初にリストへ変換して変数に保存しておくのが安全です。
>>> zipped = list(zip(dictionary.items(), num_list))
>>> print(zipped)
[(('A', 1), 1), (('B', 2), 2), (('C', 3), 3)]このようにzip()を活用すれば、辞書とリストの要素を簡単に対応付けることができ、データ処理のコードを簡潔に書くことができます。
-
キーと値のリストからPython辞書(dict)を作成する方法
キーリストと値リストから辞書を作成する Pythonでは、キーを格納したリスト(L1)と、それに対応する値を格納したリスト(L2)が別々に用意されている場合でも、いくつかの簡単な方法で1つの辞書オブジェクトにまとめることができます。 ここでは、代表的な2つの方法を紹介します。 方法1:zip()関数とdict()関数を組み合わせる 最もシンプルで一般的なのが、zip()で2つのリストをペア化し、dict()関数で辞書に変換する方法です。 >>> L1 = [a,b,c,d] >>> L2 = [1,2,3,4] >>> d = dict(
-
Pythonでzip()と内包表記を使ってリストから辞書を作成する方法
Pythonでは、2つのリスト(キーと値)を組み合わせて辞書を作成したい場面がよくあります。この記事では、組み込み関数 zip() と dict()、さらにPython 3.xで利用できる辞書内包表記を使った2つの方法をわかりやすく解説します。 方法1:dict()とzip()を組み合わせる zip() はPythonの組み込み関数で、複数のリストから同じインデックス位置にある要素を取り出し、タプルのペア(イテレータ)として返します。一方のリストをキー、もう一方を値とすれば、このzipオブジェクトを組み込み関数 dict() に渡すだけで、簡単に辞書オブジェクトを構築できます。 >&