Skip to main content
 首页 » 编程设计

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

2025年05月04日23exmyth

我想在 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 上添加一个新整数,它会给出“索引超出范围 "错误所以我发现 ary_1 和 ary_2 应该有相等数量的整数来防止这个错误。

请您参考如下方法:

如果要组合数组,可以使用内置方法.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 

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