我有一个整数数组,表示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])]
有人可以帮我整理一下吗?
答案 0 :(得分:1)
我认为 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)