我有一个字典,每个键中都有多个值。 我想反转字典,以便可以将不同键中存在的所有值存储在 Value:Keys 对中(请记住,一个值可以存在于多个键中)。
样本数据:
{
"1A": [
"mathematics"
],
"1B": [
"problem-solving",
"model"
],
"1C": [
"basic",
"model"
]
}
输出:
{
"mathematics": [
"1A"
],
"problem-solving": [
"1B"
],
"model" : [
"1B" ,
"1C"
],
"basic": [
"1C",
]
}
如您所见,MODEL现在有2个值1B和1C。
我尝试了不同的方法,但是所有人似乎都认为Key:Value必须是唯一的。以下所有方法均无法满足上述情况。
方法1:
my_dict2 = {y:x for x,y in instr_dict.iteritems()}
instr_json = json.dumps(new_dict)
print(instr_json)
方法2:
my_dict2 = dict((y,x) for x,y in instr_dict.items())
instr_json = json.dumps(new_dict)
print(instr_json)
方法3:
b = dict()
for k, v in instr_dict.items(): # a.iteritems() in python 2
b[v] = k
del instr_dict[k]
a = b
print(a)
有人可以提供正确的方法来解决此问题吗?
答案 0 :(得分:2)
只需在字典上循环即可。如果新键在字典中,请附加值,否则用该值创建一个列表。
这是工作代码。
ViewSwitcher