用户输入一个字典格式的字符串,利用eval函数将字符串转化为字典,然后反转其中键值对输出。
时间: 2024-11-12 22:32:55 浏览: 24
当然,你可以使用`ast.literal_eval()`函数代替`eval()`,因为它更安全,只解析有效Python表达式,不会执行可能的恶意代码。这里是一个步骤:
1. 首先,你需要确保输入的是有效的JSON或类似格式的字符串,因为`literal_eval()`只会处理这样的结构。
2. 然后,用`ast.literal_eval()`函数将字符串解析成字典。
3. 对于字典,你可以创建一个新的字典,其键是从原字典的值取反(如果值是可迭代的,如列表、元组),值则是原字典的键。
以下是对应的Python代码示例:
```python
import ast
def reverse_dict(s):
# 使用 literal_eval 解析字符串为字典
dict_str = s.replace("'", '"') # 将单引号替换为双引号,因为 literal_eval 需要双引号包围的字符串
dict_obj = ast.literal_eval(dict_str)
# 反转键值对并创建新的字典
reversed_dict = {v: k for k, v in dict_obj.items()}
return reversed_dict
# 示例用法
input_string = '{"name": "Alice", "age": 30, "hobbies": ["reading", "gaming"]}'
output = reverse_dict(input_string)
print(output)
```
阅读全文