Python:使用FOR循环插入字典

Python:使用FOR循环插入字典,python,dictionary,Python,Dictionary,我已经在论坛上搜索过了,不知道是否可以使用下面的结构将新条目插入到我的Python字典中,而不将其转换为列表 for x in range(3): pupils_dictionary = {} new_key =input('Enter new key: ') new_age = input('Enter new age: ') pupils_dictionary[new_key] = new_age print(pupils_dictionary) 结果如下:

我已经在论坛上搜索过了,不知道是否可以使用下面的结构将新条目插入到我的Python字典中,而不将其转换为列表

for x in range(3):    
   pupils_dictionary = {}
   new_key =input('Enter new key: ')
   new_age = input('Enter new age: ')
   pupils_dictionary[new_key] = new_age
print(pupils_dictionary)
结果如下:

Enter new key: Tim
Enter new age: 45
Enter new key: Sue
Enter new age: 16
Enter new key: Mary
Enter new age: 15
{'Mary': '15'}
为什么只有玛丽15岁,其他人都不进去


谢谢/

您可以使用每个循环重新创建字典:

for x in range(3):    
   pupils_dictionary = {}
   new_key =input('Enter new key: ')
   ...
而是在循环外创建一次:

pupils_dictionary = {}
for x in range(3):    
   new_key =input('Enter new key: ')
   ...

每次通过循环时,都将字典重新定义为空。代码应该是

pupils_dictionary = {}
for x in range(3):    
  new_key =input('Enter new key: ')
  new_age = input('Enter new age: ')
  pupils_dictionary[new_key] = new_age
  print(pupils_dictionary)
因为你有 小学生字典={}

在循环内部,在每个循环上,其值都重置为{}

建议:

使用原始输入而不是输入

因此,该代码应该可以工作:

pupils_dictionary = {}

for x in range(3):    
    new_key = raw_input('Enter new key: ')
    new_age = raw_input('Enter new age: ')
    pupils_dictionary[new_key] = new_age
print(pupils_dictionary)

需要考虑的重要事项:当用户重新输入相同的名称时,您会怎么做?!字典不能有重复的键——作为元组列表可能更好。为什么删除了大部分问题?@user3396486我回滚了您的编辑,因为这里的所有答案都是基于您的示例发布的(您通过编辑删除了这些示例)
input
替换了Python 3.x中的
raw\u input