【发布时间】:2021-12-15 10:41:11
【问题描述】:
我在这段代码sn-p中遇到了问题:
temp = matrixInput.copy()
for iy in range(len(temp)):
for runde in range(1, 5):
for ix in temp[iy]:
print("iy:", iy, "ix:", ix, "runde", runde, "len:", len(temp[iy]))
newnumber = ix + runde
if newnumber > 9:
newnumber -= 9
matrixInput[iy].append(newnumber)
matrixInput 是一个包含一大堆整数的列表(如果需要,可以使用矩阵)。
这个想法是创建一个副本,遍历副本并附加到原始副本。这样做 4 次,每次附加数字中的值应该增加 1。目标是得到一个 5 倍于初始值的矩阵。
到目前为止一切顺利。但是由于某种原因,当我附加到matrixInput 时,最内部的循环会卡住并无休止地附加。尽管我附加到matrixInput[iy],temp[iy] 实际上变得越来越大。我的错误是什么?
【问题讨论】:
-
我没有附加我正在迭代的列表,但迭代仍然变得更大。
-
list.copy()是浅拷贝。它不会复制子列表。 -
天哪。你说的对。它的列表列表,因此它只复制列表。谢谢
标签: python python-3.x list