您对复制地址的直觉是正确的。像这样思考:
sub_list = [0] * 10a_list = [sub_list] * 10
该代码实际上与您上面发布的代码等效。这意味着您实际上
sub_list在更改的任何元素时都在更改同一列表
a_list。您甚至可以通过输入以下内容来确保:
a_list = [[0] * 10] * 10for n in a_list: print id(n)
并且每个元素都会显示相同的内容。为了解决这个问题,您应该使用:
a_list = [[0] * 10 for _ in range(10)]
为了为的每个元素创建一个新的子列表
a_list。



