首页 > 解决方案 > 如何将字典列表转换为以组合元组为键的多个字典?

问题描述

我有一个看起来像这样的字典

[{'2013-01': 0.4,
  '2013-02': 0.5,
  'id': 1},
{'2013-01': 0.1,
  '2013-02': 0.4,
  'id': 2},]

我如何转换它是这样的:

Format: {('yyyy-mm', id): value}

{('2013-01', 1): 0.4,
('2013-02', 1): 0.5,
('2013-01', 2): 0.1,
('2013-01', 2): 0.4
}

标签: pythonpandaspython-2.7

解决方案


遍历字典列表:

res = {}
for d in d_list:
    id_ = d.pop('id')
    for k, v in d.items():
        res[(k, id_)] = v

或者用听写理解,稍微简洁一点:

res = {}
for d in d_list:
    id_ = d.pop('id')
    res.update({(k, id_): v for k, v in d.items()})

推荐阅读