Python附加vs列表+列表



我读过Python list+list vs.list.append(),这是一个类似的问题,但我的问题更多地与下面的代码有关

a = [[]] * 4
b = [[]] * 4
a[3] = a[3] + [1]
b[3].append(1)
print a, b

哪个给出:

[[],[],[],[1]] [[1],[1],[1],[1]]

为什么这两个会有什么不同?我从来没有遇到过这样的例子,其中这两个方法有不同的输出。。。

感谢

a[3] = a[3] + [1]未修改a[3]。相反,它在那里放了一个新项目。a[3] + [1]创建了一个与a[3]类似的列表,只是在末尾有一个额外的列表。然后,a[3] = ...将索引3处的a设置到该新列表。

CCD_ 8访问CCD_ 9并使用其CCD_。.append()方法处理列表本身,并在列表的末尾放置一个。由于[[]] * 4创建了一个具有另一个列表的四个副本的列表,因此.append()方法在b的所有项目中显示其变化。

最新更新