Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何添加到python字典动态输入_Python_Dictionary - Fatal编程技术网

如何添加到python字典动态输入

如何添加到python字典动态输入,python,dictionary,Python,Dictionary,我搜索了stackoverflow和online,没有找到这个问题的答案 我的字典不断替换值,而不是插入新值,因为我使用循环。我在一个循环中接受用户的输入,并将其插入字典,但它一直在替换。它只在我使用循环时覆盖,没有循环它是可以的,但是我需要循环,我需要一种特定的格式,而不是任何随机键和任何随机值(似乎是大多数python响应) 我需要输出完全如下所示: [{'firstname':罗杰,'lastname':史密斯,'major':历史}, {'firstname':罗德里戈,'lastnam

我搜索了stackoverflow和online,没有找到这个问题的答案

我的字典不断替换值,而不是插入新值,因为我使用循环。我在一个循环中接受用户的输入,并将其插入字典,但它一直在替换。它只在我使用循环时覆盖,没有循环它是可以的,但是我需要循环,我需要一种特定的格式,而不是任何随机键和任何随机值(似乎是大多数python响应)

我需要输出完全如下所示: [{'firstname':罗杰,'lastname':史密斯,'major':历史}, {'firstname':罗德里戈,'lastname':桑多瓦尔,'major':物理学}]

这是我的代码,我做错了什么?谢谢

studentsD = {}
studentsList = []

while more values to enter:        
    firstname = input('Enter firstname')
    lastname = input('Enter lastname')
    major = input('Enter major')          
   
    studentsD['firstname'] = firstname
    studentsD['lastname']=lastname
    studentsD['major']=major

    studentList.append(studentsD)   # problem here  
            

结束循环

您在所需输出中描述的数据结构是列表,而不是字典,没有键值结构。在字典中,您总是对三个键的三个值进行过多的重写

对于您想要的输出,您需要创建第二个学生列表,并为每个学生在其中放置一个字典

student_data_list = []

while ...:

    firstname = input('Enter firstname')
    lastname = input('Enter lastname')
    major = input('Enter major')          
   
    student = {}
    student['firstname'] = firstname
    student['lastname']=lastname
    student['major']=major
    student_data_list.append(student)
作为替代方案,您可以添加一个学生id,并将其作为学生词典的密钥。然后,您可以在循环中为每个学生递增该ID,并添加以该ID为键的学生词典

id = 0

while ...:

    firstname = input('Enter firstname')
    lastname = input('Enter lastname')
    major = input('Enter major')          
   
    student = {}
    student['firstname'] = firstname
    student['lastname']=lastname
    student['major']=major
    studentsD[id] = student
    id++

有100多个教程,你可以在那里学习如何使用dicts。它奏效了!,所以我走对了方向,这只是我字典声明的位置。谢谢你的帮助!