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