要在Python中反转字典而不使用setdefault
,可以使用dict.fromkeys()
方法和列表推导式来实现。以下是一个示例代码:
def reverse_dict(my_dict):
reversed_dict = {}
for key, value in my_dict.items():
if value not in reversed_dict:
reversed_dict[value] = [key]
else:
reversed_dict[value].append(key)
return reversed_dict
# 测试示例
my_dict = {'a': 1, 'b': 2, 'c': 1}
reversed_dict = reverse_dict(my_dict)
print(reversed_dict)
输出:
{1: ['a', 'c'], 2: ['b']}
在这个示例中,我们首先创建一个空字典reversed_dict
。然后遍历原始字典my_dict
的键值对。对于每个键值对,我们检查值是否已经存在于reversed_dict
中。如果值不在reversed_dict
中,我们将其作为键添加到reversed_dict
中,并将键作为值的列表添加到该键对应的值中。如果值已经存在于reversed_dict
中,我们只需将键添加到该值对应的列表中。
最后,我们返回反转后的字典reversed_dict
。