将dict列表转换为以值为键的dict

2024-10-02 20:30:24 发布

您现在位置:Python中文网/ 问答频道 /正文

根据字典:

dictData = [{'aaa': 'aaa_value1', 'bbb': 'bbb_value1', 'ccc': 'ccc_value1'}, 
            {'aaa': 'aaa_value1', 'bbb': 'bbb_value2', 'ccc': 'ccc_value2'},
            {'aaa': 'aaa_value2', 'bbb': 'bbb_value3', 'ccc': 'ccc_value3'}]

我想要这个:

   newdictData=[{'aaa_value1':[(bbb_value1,ccc_value1),(bbb_value2, ccc_value2)],
                {'aaa_value2':[(bbb_value3,ccc_value3)],

Tags: 字典bbbcccvalue1aaavalue2value3dictdata
1条回答
网友
1楼 · 发布于 2024-10-02 20:30:24

您可以使用defaultdict:

from collections import defaultdict
d = defaultdict(list)
dictData = [{'aaa': 'aaa_value1', 'bbb': 'bbb_value1', 'ccc': 'ccc_value1'}, 
        {'aaa': 'aaa_value1', 'bbb': 'bbb_value2', 'ccc': 'ccc_value2'},
        {'aaa': 'aaa_value2', 'bbb': 'bbb_value3', 'ccc': 'ccc_value3'}]
for i in dictData:
    the_vals = sorted(i.values())
    d[the_vals[0]].append(the_vals[1:])
print(dict(d))

输出:

{'aaa_value1': [['bbb_value1', 'ccc_value1'], ['bbb_value2', 'ccc_value2']], 'aaa_value2': [['bbb_value3', 'ccc_value3']]}

相关问题 更多 >