python - 制作和打印包含输入值的字典的代码输出不完整的字典;为什么?
问题描述
我正在尝试将 5 对用户输入变量(用户名和年龄)存储到字典中,并在打印语句中返回该字典,但它一直输出只有最后一个键值对的字典。导致这种情况发生的代码中发生了什么?
query_count= 0
user_info = {}
for i in range (5):
query_count = 0
user_info = {}
user_info['user'] = input("user: ")
user_info['age'] = input("age: ")
query_count += 1
if query_count < 5:
continue
print(user_info)
示例输出:
{'user': 'Jamie', 'age': '42'}
解决方案
您将相同的字段更新五次。没有“i”的引用可以告诉字典进行迭代。字典也有键值对。您不能多次拥有一把钥匙。而不是你应该有像 "name":"age" 这样的条目说 "abc":"23"
试试下面的代码:
user_info = {}
for i in range (5):
name = input("user: ")
print(name)
age = input("age: ")
print(age)
user_info[name] = age
print(user_info)
输出:{'a': '1', 'b': '2', 'c': '3', 'd': '4', 'e': '5'}
请注意,如果您输入重复的名称,则字典中的条目将被替换。
推荐阅读
- ios - 在 Swift 的上下文中,“类”对于类型查找来说是模棱两可的
- r - 如果在 R 中由 csv 获得的数据帧上的 else 语句?
- ajax - 在 Ajax API 发布请求中获取 cookie - Laravel 5.6
- css - 不使用 bootstrap/bulma/materialize 等框架时如何开始构建自己的 css
- javascript - 刷新后如何根据点击的div加载php文件?
- sql - 相当于 SQL Server 中的 NULL
- android - 使用 Intent 标志“CLEAR_TOP”和 launchMode="singleTask" 有什么区别?
- php - 使用块时间php显示从开始时间到结束时间的列表时间
- objective-c - 按其 CGFloat 值对对象数组进行越来越多的排序
- php - 在 SQL 中存储某些 XML 子项