为什么我的最后一个值覆盖了其余列表?

时间:2019-06-17 21:31:16

标签: python

我有这个代码

DATA = [
{"Value":0}
]

dicDATA = {"Value":0}

var = 0

#in some function...
print("Insert a value:")
var = int(input())

dicDATA["Value"] = var
DATA.append(dicDATA)

for i in DATA:
    print(i["Value"])

如果我插入一个值2,我希望输出为2并且可以,但是如果我插入另一个值5,我希望输出为:

2
5

但是实际输出是:

5
5

该值将被覆盖

1 个答案:

答案 0 :(得分:0)

您并不是每次都添加dicData的副本。因此,您每次都会附加相同的字典。

每次添加后都应创建一个新词典。

print("Insert a value:")
var = int(input())

dicDATA = {"Value": var}
DATA.append(dicDATA)