关于python的字典的键值互换,由于可能有多键都对应同一值,故需要用列表存储互换之后字典的值。
def reverse_dic(my_dic):
reverse = {}
for key in my_dic:
value = my_dic[key]
if value in reverse:
reverse[value].append(key)
else:
reverse[value] = [key]#用list存储
return reverse
dic = {'a': 1, 'v': 1, 's': 2}
print(reverse_dic(dic))
#dic = {'a': 1, 'v': [1], 's': 2}# 当把测试的例子改成这样的时候会报错,
# 原因是由于字典的key不能是list、dict、set,必须是hashable
#print(reverse_dic(dic))
关于 TypeError: unhashable type(list/set/dict)详解具体参见这位博主