首页 > 解决方案 > python:dict到groupby相似关键元素的列表

问题描述

我有一个字典列表:

xList =  [{491: 551}, {598: 60}, {47: 130}, {47: 451}, {47: 792}, {47: 599}, {47: 590}]

我正在尝试对类似的键值进行分组以获得:

res =  [{ 491 : [551], 598: [60], 47: [130, 451, 792, 599, 590}]

我试过了:

from collections import defaultdict

v = defaultdict(list)

for key, value in sorted(xList.items()):
    v[key].append(value)

但这需要一个平面字典而不是字典列表

标签: pythondictionary

解决方案


然后你做一个嵌套迭代。

遍历列表,然后遍历字典的(键,值)。

rslt = {}
for i in xList:
    for k, v in i.items():
        rslt.setdefault(k, []).append(v)

推荐阅读