我有这段代码
x=3
a=x*[x*[0]]
for i in range(0,x):
for j in range(0,x):
dt=int(input("insert data: "))
a[i][j]=dt
print(a)
它应该只是在询问时添加数字,但由于某种原因它填充了所有行中的数字
答案 0 :(得分:3)
您刚刚创建了3行,其中a=x*[x*[0]]
具有相同的引用。 x*[0]
构建一次,并由外部乘法运算符在所有行上传播。
更改行会更改所有行。请注意,它可能很有用(但显然不是很明显)
改为(使用列表理解):
a=[x*[0] for _ in range(x)]
所以每行的引用都是分开的