簡體   English   中英

如何在Python中組合一系列的字典

[英]How to unit a sequence of dicts in Python

我想對兩個字典進行組合,但是列表中有10個字典,因此如何在不重復的情況下對兩個字典進行組合?

我寫了這樣的東西:

d_a1 = dict(list(dicts[0].items()) + list(dicts[1].items()))
d_b1 = dict(list(dicts[2].items()) + list(dicts[3].items()))
d_b2 = dict(list(dicts[4].items()) + list(dicts[5].items()))
d_b3 = dict(list(dicts[6].items()) + list(dicts[7].items()))
d_b4 = dict(list(dicts[8].items()) + list(dicts[9].items()))

您可以使用:

for d1, d2 in zip(dicts[::2], dicts[1::2]):
    new_dict = dict(d1, **d2)

這將字典配對,並基於兩個輸入字典創建一個新字典。

使用一些迭代魔術將其進一步循環到循環中:

paired = [dict(d1, **d2) for d1, d2 in zip(*[iter(dicts)]*2)]

生成配對字典的列表。

這將創建所有配對字典的列表:

it = iter(dicts)
paired_dicts = [dict(x, **next(it)) for x in it]

我會用:

import collections

newDicts = collections.deque((d1.update(d2) for d1,d2 in zip(*[iter(listOfDicts)]*2)), maxlen=0)

這應該就地編輯字典。 因此,詞典列表中偶數索引中的所有詞典將在下一索引中包含自身和字典的並集

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM