我想在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_1 或 ary_2 上添加新整数,则会给出&#34; 索引超出范围< /强>&#34;错误,所以我发现 ary_1 和 ary_2 应该有相等的整数/秒来防止此错误。
答案 0 :(得分:5)
如果要组合数组,可以使用内置方法.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
这样你就可以使用第一个数组填充第三个数组,然后填充第二个数组。