我需要在Python中创建一个列表列表,所以我输入以下内容:
myList = [[1] * 4] * 3
列表看起来像这样:
[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]  
然后我改变了最里面的一个值:
myList[0][0] = 5
现在我的列表看起来像这样:
[[5, 1, 1, 1], [5, 1, 1, 1], [5, 1, 1, 1]]  
这不是我想要或期望的.有人可以解释一下发生了什么,以及如何解决这个问题?
在这段代码中,_after 的含义是什么for?
if tbh.bag:
   n = 0
   for _ in tbh.bag.atom_set():
      n += 1
我想matrix用零填满我.不幸的是,在下面的例子中,变量x和y冗余是:
self.matrix = [[0 for x in range(0, self.N)] for y in range(0, self.N)]
乘法列表,仅复制引用当然不是我所期望的:
>>> matrix = [[0] * 5] * 5
>>> matrix
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
>>> matrix[1][1] = "X"
>>> matrix
[[0, 'X', 0, 0, 0], [0, 'X', 0, 0, 0], [0, 'X', 0, 0, 0], [0, 'X', 0, …