使用 'for loop' 合并两个数组

Merging two arrays using 'for loop'

我想在 python 2.7 中使用'for loop' 合并两个数组给定:


from array import *
ary_1 = array ('i',[11,12,13])
ary_2 = array ('i',[14,15,16])
ary_3 = array ('i')

应该在 ary_3 上给出输出,因此 ary_3 将按特定顺序显示如下:


ary_3 = array ('i',[11,12,13,14,15,16])

到目前为止,这是我的代码:


from array import *
ary_1 = array ('i',[11,12,13])
ary_2 = array ('i',[14,15,16])
ary_3 = array ('i')
ary_len = len (ary_1) + len (ary_2)
for i in range (0,ary_len):
    ary_3.append (ary_1 [i])
    ary_3.append (ary_2 [i])
    if len (ary_3) == len (ary_1) + len (ary_2):
       print ary_3,
       break

那么输出是:


array('i',[11,14,12,15,13,16])

实际上顺序不对,而且如果我在 ary_1ary_2[=41= 上添加一个新整数],它给出了“index out of range”错误,所以我发现 ary_1ary_2 应该有等量的 integer/s 来防止这个错误。

如果要合并数组,可以使用内置方法.extend:

ary_1.extend(ary_2)
print ary_1 #array('i', [11, 12, 13, 14, 15, 16])

正如 SethMMorton 在评论中指出的那样,如果您不想覆盖第一个数组:

ary_3 = ary_1 + ary_2
print ary_3 #array('i', [11, 12, 13, 14, 15, 16])

您应该使用上述方法之一,但出于学习目的 在您原来的 for 循环中,您(错误地)通过

交错了两个数组
ary_3.append (ary_1 [i])
ary_3.append (ary_2 [i])

如果您想保留 for 循环,它应该类似于:

ary_1_len = len(ary_1)
for i in range (0,ary_len):
    if i < ary_1_len:
       ary_3.append (ary_1 [i])
    else:
       ary_3.append (ary_2 [i-ary_1_len])
    if len (ary_3) == len (ary_1) + len (ary_2):
       print ary_3
       break

用第一个数组填充第三个数组,然后用第二个数组填充第三个数组。