输入一个字典类型的字符串,反转其中键值对输出。即,读入字典key:value模式,输出value:key模式。如果value有重复,则将其对应的key值合并成为一个列表。。Python代码
时间: 2023-06-10 08:05:40 浏览: 137
解决python字典对值(值为列表)赋值出现重复的问题
5星 · 资源好评率100%
请看以下Python代码实现:
```
def reverse_dict(dict_str):
# 将字符串类型的字典转换成真正的字典类型
dict_obj = eval(dict_str)
# 定义一个空字典用于存放结果
result_dict = {}
# 遍历原字典的键值对
for key, value in dict_obj.items():
# 如果值已经存在于结果字典中,说明是重复值
if value in result_dict:
# 将该键添加到对应的列表中
result_dict[value].append(key)
else:
# 如果值不存在于结果字典中,直接添加该键值对
result_dict[value] = [key]
# 将结果字典的键值对反转并返回
return str({v:k for k, v in result_dict.items()})
# 测试
dict_str = "{'a': 1, 'b': 2, 'c': 1}"
print(reverse_dict(dict_str)) # 输出: "{'1': ['a', 'c'], '2': ['b']}"
```
以上代码中,我们首先将字符串类型的字典转换为真正的字典类型,并定义一个空字典用于存放结果。然后遍历原字典的键值对,如果值已经存在于结果字典中,说明是重复值,我们就将该键添加到对应的列表中。如果值不存在于结果字典中,直接添加该键值对。最后将结果字典的键值对反转并返回。
阅读全文