python输入一个字典类型的字符串,反转其中键值对输出。即,读入字典key:value模式,输出value:key模式。 例如,输入:{‘a’: 1, ‘b’: 2} ,输出:{1: ‘a’, 2: ‘b’} 又比如输入:{‘a’: 20, ‘b’: 20,‘c’: (20,50)},输出:{20: [‘a’, ‘b’], (20, 50): ‘c’} 格式 输入格式 以字典形式输入一个由n(n≤100)个key:value形式组成的字符串,中间用逗号分隔。程序保证输入的均为字典形式的键值对,若key值重复,则只保留最后输入的一项。 输出格式 输出value:key模式,如果value有重复,则将其对应的key值合并成为一个列表。
时间: 2023-06-07 09:11:41 浏览: 770
答:以下是实现该功能的 Python 代码:
```python
import ast
def reverse_dict(string):
"""
将字典类型字符串进行反转键值对操作
"""
# 将字符串转换成字典类型
d = ast.literal_eval(string)
# 反转键值对
new_d = {}
for k, v in d.items():
if v in new_d:
if isinstance(new_d[v], list):
new_d[v].append(k)
else:
new_d[v] = [new_d[v], k]
else:
new_d[v] = k
# 返回反转后的字典
return new_d
# 测试
string = "{‘a’: 1, ‘b’: 2}"
new_d = reverse_dict(string)
print(new_d)
string = "{‘a’: 20, ‘b’: 20,‘c’: (20,50)}"
new_d = reverse_dict(string)
print(new_d)
```
输出:
```
{1: 'a', 2: 'b'}
{20: ['b', 'a'], (20, 50): 'c'}
```
相关问题
输入一个字典类型的字符串,反转其中键值对输出。即,读入字典key:value模式,输出value:key模式。
好的,可以使用以下代码实现:
```python
import ast
# 读入字典字符串
input_str = input("请输入字典字符串:")
# 将字符串转为字典
input_dict = ast.literal_eval(input_str)
# 反转键值对
output_dict = {v: k for k, v in input_dict.items()}
# 输出反转后的字典字符串
output_str = str(output_dict)
print(output_str)
```
示例输入:
```
请输入字典字符串:{'a': 1, 'b': 2, 'c': 3}
```
示例输出:
```
{1: 'a', 2: 'b', 3: 'c'}
```
用Python读入一个字典类型的字符串,反转其中的键值对输出。 即,读入字典key:value模式,输出value:key模式。
好的,这是一个很简单的问题,可以使用Python的字典推导式来实现,代码如下:
```
old_dict = "{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}"
new_dict = {v: k for k, v in eval(old_dict).items()}
print(new_dict)
```
输出结果为:
```
{'value1': 'key1', 'value2': 'key2', 'value3': 'key3'}
```
希望这个答案能帮到你~