首页 > 解决方案 > 从字典键、子键和值的列表构造字典

问题描述

有一个字典列表:

list_dict = [['key1', {'subkey1': 0}],
             ['key1', {'subkey2': 2}],
             ['key1', {'subkey5': 5}],
             ['key2', {'subkey2': 4}],
             ['key2', {'subkey1': 8}],
             ['key1', {'sybkey5': 10}]]

怎样才能list_dict转换成一个整洁的字典如下?

{'key1': {'subkey1': 0, 'subkey2': 2, 'subkey5': 5},
 'key2': {'subkey2': 4, 'subkey1': 8, 'sybkey5': 10}}

标签: python

解决方案


以下应该有效:

d = dict()
for item in list_dict:
    d.setdefault(item[0], {}).update(item[1])

来自Python 3 文档

设置默认(键[,默认])

如果键在字典中,则返回其值。如果不是,则插入值为默认值的键并返回默认值。默认默认为无。


推荐阅读