x = raw_input("")
y = raw_input("")
a = []
b = []
count = 1
for i in range(0, int(y)):
b.append(count)
count+=1
for i in range(0, int(x)):
a.append(b)
for i in a:
print ""
for j in i:
print j,
a[1][1] = 0
for i in a:
print ""
for j in i:
print j,
a 是通过向其追加列表“b”n 次而创建的 现在,当我修改 a[1][1] 时,a[0][1] - a[n][1] 的整个列将被修改为该值
谁能解释一下为什么会发生这种情况
最佳答案
每次追加b
时,您都在追加同一个列表——不是列表的副本,而是对同一个对象的多个引用。如果您希望每一行都是不同的列表,则需要通过执行 a.append(b[:])
每次附加一个新列表。
关于python - 修改一个元素会修改Python中的整列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23693858/