用多个值和键之一拆分dict

时间:2019-05-03 21:59:17

标签: python dictionary multivalue

我有一个多值字典和唯一键,我需要为每个值使用一个键

data = {
    "id": [123,456,546,311], 
    "info": ["info1","info2","info3"],       
    .
    .
    .
}

需要此答案:

data = {
    "id": [123], 
    "id": [456], 
    "id": [546],
    "id": [311]
    "info":["info1"],
    "info":["info2"],
    "info":["info3"]       

}

先谢谢

2 个答案:

答案 0 :(得分:0)

在一个词典中,您不能多次拥有相同的键(如何通过键访问它?)。

您可以改为提取一个元组列表,如下所示:

exploded = [(key, value) for key, values in data.items() for value in values]

输出:

[('id', 123), ('id', 456), ('id', 546), ('id', 311), 
 ('info', 'info1'), ('info', 'info2'), ('info', 'info3')]

答案 1 :(得分:0)

正如奥尔文·罗格(Olvin Roght)在评论中所说,据我所知,字典中不可能有非唯一键。在官方的Python文档中,写了以下内容:

“最好将字典视为一组键:值对,并要求键是唯一的(在一个字典中)。”

(来源:https://docs.python.org/3/tutorial/datastructures.html