如何通过单次用户输入定义两个对象:字典名字符串与对应字典
如何通过一次用户输入同时定义两个对象?
需求说明:
已有多个预设字典,让用户选择要使用的字典名称,通过这次输入同时设置两个对象:
- 一个是用户输入的字符串(即字典名称)
- 另一个是该名称对应的预设字典本身
原示例存在的问题
原示例代码有两处错误:
- Barney字典的语法错误:
"Hobby", "Fishing"应该改为"Hobby": "Fishing"(键值对需用冒号分隔) - 直接把
input函数赋值给变量的方式错误,无法正确获取输入内容和对应字典
正确实现方式
不要直接通过变量名去获取字典(这种方式不安全且不符合规范),建议把所有预设字典存入一个统一的映射字典中,通过用户输入的字符串作为键来获取对应的字典值。
# 修正语法错误的预设字典 Barney = {"Height": 100, "Weight": 200, "Hobby": "Fishing"} # 可添加更多预设字典,比如: # Lily = {"Height": 90, "Weight": 150, "Hobby": "Reading"} # 把所有预设字典存入统一的映射字典 people = {"Barney": Barney} # 获取用户输入 PersonName = input("Who do you want to talk to? ") # 通过输入的名称从映射字典中获取对应的字典,不存在则返回提示 PersonDict = people.get(PersonName, "该人物不存在") print(PersonName, ":about:", PersonDict)
预期输出
Who do you want to talk to? Barney Barney :about: {'Height': 100, 'Weight': 200, 'Hobby': 'Fishing'}
内容的提问来源于stack exchange,提问作者LoB
相关产品推荐
相关产品推荐

