Python:迭代时在列表中追加Integer数组

时间:2015-01-29 12:42:29

标签: python arrays iteration

我有一个整数数组,表示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])]

有人可以帮我整理一下吗?

1 个答案:

答案 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)