2 回答
TA贡献1883条经验 获得超3个赞
使用稍微好一点的方法dict.setdefault
前任:
output_dct = {}
for dct in res:
for k, v in dct.items():
output_dct.setdefault(k, []).extend(v)
或使用collections.defaultdict
from collections import defaultdict
output_dct = defaultdict(list)
for dct in res:
for k, v in dct.items():
output_dct[k].extend(v)
print(output_dct)
输出:
{'x': [2, 1, 1, 4, 5, 6, 7, 1, 1, 1, 7, 7, 2, 9, 1, 1],
'v': [49280, 536704, 12336, 340000, 524360, 151624, 94280, 81968, 241856, 335904, 463016, 598040, 606256, 422016, 151680, 1237120]}
TA贡献1809条经验 获得超8个赞
你说单线?到理解-移动!
>>> {k: sum((d[k] for d in res), []) for d in res for k in d}
{'x': [2, 1, 1, 4, 5, 6, 7, 1, 1, 1, 7, 7, 2, 9, 1, 1], 'v': [49280, 536704, 12336, 340000, 524360, 151624, 94280, 81968, 241856, 335904, 463016, 598040, 606256, 422016, 151680, 1237120]}
(编辑:实际上,我可能会defaultdict像 Rakesh 那样做,因为嵌套的理解在页面上很紧凑,但对于代码的其他读者来说并不一定很明显。)
添加回答
举报