如何将字典列表中的字典绑定在一起?

时间:2019-12-10 02:55:09

标签: python

x=[{'a':1,'b':2},{'a':6,'b':5},{'a':3,'b':4}]
y={'a':[1,6,3],'b':[2,5,4]}

x是一列字典,其中所有字典都具有相同的键,现在我想将值合并到一个列表中,如示例中所示,是否可以快速实现?

1 个答案:

答案 0 :(得分:1)

如果保证x中的所有字典都具有相同的键,则可以执行以下操作:

y = {k: [d[k] for d in x] for k in d[0]}

如果没有,则必须先找到它们的并集,

keys = {k for d in x for k in d.keys()}

然后遍历它。

y = {k: [d[k] for d in x if k in d] for k in keys}

更详细,您可以这样写:

y = dict()
for d in x:
    for k, v in d.items():
        y.setdefault(k, []).append(v)