私は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つの辞書
- 2. 辞書の配列を1行に連結する
- 3. 複数のデータ辞書をPythonで連結する
- 4. 辞書を「key = val&key = val ...」の文字列に連結します。
- 5. 辞書のクエリの結果を格納
- 6. Python - 2つの辞書を結合し、文字列の値を連結しますか?
- 7. 辞書を考える辞書
- 8. 辞書へのビットワインドLINQ結果
- 9. NumPyを連結して連結する
- 10. 辞書をJSONにシリアライズする奇妙な結果
- 11. linqの結果を辞書に変換する<string, int>
- 12. 辞書のキーをリスト内のタプルに結合する
- 13. Google App Engine GqlQueryの結果をPython辞書に変換する
- 14. 辞書にNHibernate QueryOver結果を変換する
- 15. 2つのLINQ辞書を1つに結合するには?
- 16. ユーザー辞書のリソース辞書
- 17. 辞書のpython辞書
- 18. 関数の辞書を結果の辞書に変換するのに、Pythonのトリックが必要
- 19. 辞書に含まれる辞書の値を変更する
- 20. OOPの辞書オブ辞書ですか?
- 21. 一連のパラメータを辞書としてインポートしますか?
- 22. リストの辞書をタプルの辞書に変換する
- 23. 辞書に.csv形式の辞書を追加する
- 24. 辞書を作成する<string>辞書<string、string>
- 25. 辞書の値を別の辞書に追加する
- 26. Erlangの辞書に辞書を保存する
- 27. 辞書の辞書を作成する方法vbscript
- 28. 辞書の辞書のユニークキーを作成する
- 29. 辞書の配列内の辞書の値を検索する
- 30. Linq:辞書をマージする
a、b、cが大きくなる場合は、itertoolsモジュールからizipをお勧めします。 – Arpegius
@lionbest:良い点、私はそれを追加しました。 – balpha