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来创建 现在,当我修改[1] [1]时,整个列为[0] [1] - a [n] [1]被修改为该值
任何人都可以解释为什么会发生这种情况
答案 0 :(得分:1)
答案 1 :(得分:1)
每次附加b
时,都会附加相同的列表 - 不是列表的副本,而是对同一对象的多个引用。如果您希望每一行都是不同的列表,则每次都需要附加一个 new 列表,方法是执行a.append(b[:])
。