我正在尝试交换字典的键和值,尽管我在网上搜索并找到了执行此操作的方法,但我不断收到错误。
def dict_reverser(dict1, dict2):
for k, v in dict2.items():
if v in dict1:
dict1[v].append(k)
else:
dict1[v] = k
print(dict1)
exampleDict = {"Ice": "Cream", "Age": "21", "Light": "Cream", "Double": "Cream"}
myDict = {}
dict_reverser(myDict, exampleDict)
我得到的错误是:
dict1\[v\].append(k)
AttributeError: 'str' object has no attribute 'append'
我尝试过 dict[v] += k 但这只是连接了所有内容,正如预期的那样。
使用 defaultdict 创建您的列表。
from collections import defaultdict
example_dict = {"Ice": "Cream", "Age": "21", "Light": "Cream", "Double": "Cream"}
my_dict = defaultdict(list)
def dict_reverser(my_dict, example_dict):
for key, value in example_dict.items():
my_dict[value].append(key)
return dict(my_dict)
test = dict_reverser(my_dict, example_dict)
print(test)