简体   繁体   English

将字典列表转换为以值为键的字典

[英]Convert list of dict into dict with values as keys

Given the dictionary:鉴于字典:

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'}]

I want this:我要这个:

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

You can use a 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))

Output:输出:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM