我怎样才能Python字典重复值并重建

我在 python 字典中遇到问题。


我想要字典


[原样]


{'level_1_name': 'asset', 'level_2_name': 'search', 'usage_permission': 'CREATE'}

{'level_1_name': 'asset', 'level_2_name': 'search', 'usage_permission': 'READ'}

{'level_1_name': 'asset', 'level_2_name': 'search', 'usage_permission': 'EDIT'}

{'level_1_name': 'server', 'level_2_name': 'keysearch', 'usage_permission': 'CREATE'}

{'level_1_name': 'server', 'level_2_name': 'keysearch', 'usage_permission': 'DELETE'}

[成为]


{'level_1_name': 'asset', 'level_2_name': 'search', 'usage_permission': ['CREATE', 'READ', 'EDIT']}

{'level_1_name': 'server', 'level_2_name': 'keysearch', 'usage_permission': ['CREATE', 'DELETE']}

我能做些什么?请帮助我..


慕姐4208626
浏览 93回答 1
1回答

绝地无双

使用简单的迭代。前任:data = [{'level_1_name': 'asset', 'level_2_name': 'search', 'usage_permission': 'CREATE'},{'level_1_name': 'asset', 'level_2_name': 'search', 'usage_permission': 'READ'},{'level_1_name': 'asset', 'level_2_name': 'search', 'usage_permission': 'EDIT'},{'level_1_name': 'server', 'level_2_name': 'keysearch', 'usage_permission': 'CREATE'},{'level_1_name': 'server', 'level_2_name': 'keysearch', 'usage_permission': 'DELETE'}]result = {}for i in data:    if i['level_1_name'] not in result:        result[i['level_1_name']] = {'usage_permission': [i.pop('usage_permission')], **i }    else:        result[i['level_1_name']]['usage_permission'].append(i['usage_permission'])    print(result)输出:{'asset': {'level_1_name': 'asset',           'level_2_name': 'search',           'usage_permission': ['CREATE', 'READ', 'EDIT']}, 'server': {'level_1_name': 'server',            'level_2_name': 'keysearch',            'usage_permission': ['CREATE', 'DELETE']}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python