我的词典列表发生了变化

时间:2015-04-18 14:09:33

标签: python list dictionary append

我在程序期间创建了一个字典列表。我有一个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是列表。

有人知道问题是什么吗?

2 个答案:

答案 0 :(得分:0)

mil只是一个指向字典的指针(可能很难说没有代码)用每次迭代创建的新字典覆盖。

答案 1 :(得分:0)

您不是在每次迭代中都创建新的mil。所以只需

if(question!="done"):
    mil = {}