使用 '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_1 或 ary_2[=41= 上添加一个新整数],它给出了“index out of range”错误,所以我发现 ary_1 和 ary_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
用第一个数组填充第三个数组,然后用第二个数组填充第三个数组。
我想在 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[=41= 上添加一个新整数],它给出了“index out of range”错误,所以我发现 ary_1 和 ary_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
用第一个数组填充第三个数组,然后用第二个数组填充第三个数组。