如何在Python中单元化一系列dicts

时间:2014-02-03 17:29:13

标签: python dictionary python-3.3

我想把两个dicts单元化,但是列表中有10个dicts,那么我如何才能将两个单元二乘二重复?

我写了这样的话:

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()))

3 个答案:

答案 0 :(得分:3)

您可以使用:

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)]

生成配对词典列表。

答案 1 :(得分:2)

这将创建所有配对词典的列表:

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

答案 2 :(得分:1)

我会用:

import collections

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

这应该就地编辑你的词典。因此,字典列表中偶数编号索引中的所有字典都将包含自身与下一个索引中的字典的并集