我在程序期间创建了一个字典列表。我有一个while循环,在每次迭代中创建一个字典并将其附加到列表中。在第一次迭代中一切都很好,但在第二次迭代时,以某种方式创建的字典成为列表的第二个成员和第一个成员,所以我所拥有的是大小为2的字典列表,具有相同的字典在列表的每个成员中。
while(question!="done"):
answers=[]
print "Please enter a question, write 'done' to finish"
question=raw_input()
if(question!="done"):
mil["Question"]=question
print "How many possible answers do you want this question to have?"
numOfAnswers=raw_input()
mil["Number of Answers"]=int(numOfAnswers)
for i in xrange(int(numOfAnswers)):
print "Please enter the next answer:"
answer=raw_input()
answers.append(answer)
mil["Answers"]=answers
print "_________________________________________________"
for i in xrange(int(numOfAnswers)):
print i+1,". ", answers[i]
print "_________________________________________________"
print "Please enter the value of the correct answer"
correct=raw_input()
mil["Correct Answer"]=correct
questions.append(mil)
那是while循环。 mil
是字典,questions
是列表。
有人知道问题是什么吗?
答案 0 :(得分:0)
mil
只是一个指向字典的指针(可能很难说没有代码)用每次迭代创建的新字典覆盖。
答案 1 :(得分:0)
您不是在每次迭代中都创建新的mil
。所以只需
if(question!="done"):
mil = {}