我有一个整数数组 offset=array('i',[0,0])
off=[]
offset=array('i',[0,0])
for each in [1,2,3]:
offset[0]=j+each
offset[1]=k+each
print(offset)
off.append(offset)
print(off)
我正在将数组附加到列表中。 我的预期输出是:
array('i', [2, 11])
array('i', [3, 12])
array('i', [4, 13])
[array('i', [2, 11]), array('i', [2, 12]), array('i', [4, 13])]
但是,我得到的输出为:
array('i', [2, 11])
array('i', [3, 12])
array('i', [4, 13])
[array('i', [4, 13]), array('i', [4, 13]), array('i', [4, 13])]
谁能帮我解决一下吗?
最佳答案
我认为j = 1,并且k = 10
并使用您的代码,如下所示:
from array import array
j,k = 1,10
off=[]
#offset=array('i',[0,0])
for each in [1,2,3]:
offset=array('i',[0,0]) # move to here
offset[0]=j+each
offset[1]=k+each
print(offset)
off.append(offset)
print(off)
复制可以帮助您,请查看 How to clone or copy a list in Python?正如Cyber建议您的那样
from array import array
from copy import copy
j,k = 1,10
off=[]
offset_base=array('i',[0,0])
for each in [1,2,3]:
offset=copy(offset_base)
offset[0]=j+each
offset[1]=k+each
print(offset)
off.append(offset)
print(off)
关于 python : Appending Integer array in list while iterating,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28215066/