x=[{'a':1,'b':2},{'a':6,'b':5},{'a':3,'b':4}]
y={'a':[1,6,3],'b':[2,5,4]}
x是一列字典,其中所有字典都具有相同的键,现在我想将值合并到一个列表中,如示例中所示,是否可以快速实现?
答案 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)