我看了另一个反问,但是那个没有字典,但没有列表。
所以我有一个字典,基本上我想将其反转。因此,键成为值,而值成为键。例如,如果我有:{'Sun' : ['hot', 'yellow'], 'Car': ['yellow'], 'Fire': ['hot']}
,
它应该返回:{'yellow': ['Sun', 'Car'], 'hot': ['Sun', 'Fire']}
我尝试仅获取键值,但是我不知道如何将其输入字典并为它们分配键值。 我将不胜感激,但会尽可能使用最基本的方法 谢谢
答案 0 :(得分:0)
from collections import OrderedDict
def invert(d):
inversion = {}
for key, vals in d.items():
for val in vals:
lst = inversion.get(val, None)
if lst is None:
lst = []
inversion[val] = lst
lst.append(key)
for lst in inversion.values():
lst.sort()
return OrderedDict(sorted(inversion.items()))
print(invert({'Sun' : ['hot', 'yellow'], 'Car': ['yellow'], 'Fire': ['hot']}))
#-> OrderedDict([('hot', ['Fire', 'Sun']), ('yellow', ['Car', 'Sun'])])