编程意外执行

时间:2014-08-28 13:36:20

标签: python

我正在尝试在 python代码

下面运行
list_name = []
dictionary = {'fname' : '' , 'lname' :''}
for i in range(0,2):
    dictionary['fname'] = i
    dictionary['lname'] = i
    print dictionary
    list_name.append(dictionary)
    #dictionary = {'fname' : '' , 'lname' :''}
print "List : ", list_name

输出

{'lname': 0, 'fname': 0}
{'lname': 1, 'fname': 1}
Array :  [{'lname': 2, 'fname': 2}, {'lname': 2, 'fname': 2}]

当我在上面的代码中取消注释此行dictionary = {'fname' : '' , 'lname' :''}时 我明白了

输出

{'lname': 0, 'fname': 0}
{'lname': 1, 'fname': 1}
Array :  [{'lname': 0, 'fname': 0}, {'lname': 1, 'fname': 1}]

我没有得到python的默认行为...请解释

1 个答案:

答案 0 :(得分:0)

我得到了答案,感谢@falsetru的评论,当我print id(dictionary)时 当我发表评论dictionary = {'fname' : '' , 'lname' :''}时,我会打印相同的ID 我得到打印的不同ID

list_name = []
dictionary = {'fname' : '' , 'lname' :''}
for i in range(0,2):
    dictionary['fname'] = i
    dictionary['lname'] = i
    print dictionary
    print id(dictionary)
    list_name.append(dictionary)
    #dictionary = {'fname' : '' , 'lname' :''}
print "List : ", list_name