Python—附加到for循环中的2D数组会导致覆盖以前的条目

Python—附加到for循环中的2D数组会导致覆盖以前的条目,python,arrays,for-loop,multidimensional-array,Python,Arrays,For Loop,Multidimensional Array,我写了一个函数来创建16,16维向量并将它们放入一个数组中,但是当我附加到数组中时,我会覆盖前面的条目 导入数学 empvec=[None]*16 向量集=[] 对于范围(16)内的g: tempvec=empvec 对于范围(16)中的i: f=g%8+1 如果(bool((g)//8)): tempvec[i]=i*f 其他: tempvec[i]=i/f vecset.append(tempvec) 对于范围(16)内的g: 打印(向量集[g]) 我还尝试创建一个空的16项数组,然后使用

我写了一个函数来创建16,16维向量并将它们放入一个数组中,但是当我附加到数组中时,我会覆盖前面的条目

导入数学
empvec=[None]*16
向量集=[]
对于范围(16)内的g:
tempvec=empvec
对于范围(16)中的i:
f=g%8+1
如果(bool((g)//8)):
tempvec[i]=i*f
其他:
tempvec[i]=i/f
vecset.append(tempvec)
对于范围(16)内的g:
打印(向量集[g])
我还尝试创建一个空的16项数组,然后使用
vecset[g]=tempvec
而不是追加,追加也不起作用

您需要为每行复制列表。当前代码的所有行都指向同一列表(内存地址)

需要简单的改变

for g in range(16):
    tempvec=empvec[:]  #  <<< copy list
范围(16)内g的

tempvec=empvec[:]#@Nick-这里的问题是通过赋值对列表进行浅拷贝,而不是将列表相乘。@TigerhawkT3你说得对-我没有仔细查看代码。谢谢你的批改。