私は3つのリストを持っています。最初は名前のリスト、2番目は辞書のリスト、3番目はデータのリストです。リスト内の各位置は、他のリスト内の同じ位置に対応します。 List_1 [0]には対応するデータがList_2 [0]とList_3 [0]などにあります。リスト1の値を主キーとし、これらの3つのリストを辞書内の辞書に変換します。すべてを順番に保ちながら、これをどうやって行うのですか?辞書を連結する
Q
辞書を連結する
6
A
答えて
13
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [7,8,9]
>>> dict(zip(a, zip(b, c)))
{1: (4, 7), 2: (5, 8), 3: (6, 9)}
はzip
詳細はdocumentationを参照してください。
lionbestは以下の点を指摘していますので、入力データが大きい場合はitertools.izip()
を参照してください。 izip
は基本的にzip
と同じことですが、リストではなくイテレータが作成されます。この方法では、辞書を作成する前に大きな一時的なリストを作成することはありません。
1
のPython 3:
combined = {name:dict(data1=List_2[i], data2=List_3[i]) for i, name in enumerate(List_1)}
のPython 2.5:
combined = {}
for i, name in enumerate(List_1):
combined[name] = dict(data1=List_2[i], data2=List_3[i])
0
これらの事の順序が重要であれば、あなたは辞書を使うべきではありません。定義上、それらは順序付けられていない。 many ordered_dictionary implementationsのいずれかを使用するか、Python 2.7または3.1を待つことができます。これには、コレクションモジュールに順序付き辞書実装が含まれます。
関連する問題
- 1. 連結する辞書パンダのデータフレーム
- 2. 異なる辞書の値を使って辞書を連結する
- 3. を連結2つの辞書
- 4. 辞書の配列を1行に連結する
- 5. 複数のデータ辞書をPythonで連結する
- 6. 空の値を持つ辞書を連結します。
- 7. 結果の辞書に2つの辞書をマージする
- 8. Pythonの結果を辞書
- 9. 数字の配列を辞書の既存のキーに連結する
- 10. 同じキーで2つの辞書(/タプル)をマージ/連結するpython
- 11. 辞書へのPyODBC結果
- 12. 辞書を「key = val&key = val ...」の文字列に連結します。
- 13. 辞書の辞書を削除する
- 14. シリアライザのForeignKey結果「辞書を期待...」
- 15. 辞書のクエリの結果を格納
- 16. Python - 2つの辞書を結合し、文字列の値を連結しますか?
- 17. 辞書を注文して値の連鎖を取得する
- 18. 一連の辞書をDataFrameに効率的に変換する
- 19. パンダ - 一連の辞書を平均化する
- 20. 辞書を辞書にロード
- 21. 辞書辞書python
- 22. 辞書を考える辞書
- 23. 辞書へのビットワインドLINQ結果
- 24. 各辞書エントリには、関連するキーエラーメッセージが必要です
- 25. 辞書内の辞書を表す
- 26. 連結IDの値を連結する
- 27. NumPyを連結して連結する
- 28. 辞書を使用してExcelスプレッドシートを結合する
- 29. 共通鍵を結合して辞書の値を結合する方法python
- 30. Google検索の辞書結果を表示するには?
a、b、cが大きくなる場合は、itertoolsモジュールからizipをお勧めします。 – Arpegius
@lionbest:良い点、私はそれを追加しました。 – balpha