在Python中将两个数组合并

7
我一直在使用包含一维数值列表的Python数组。到目前为止,我一直在使用array.append(value)函数逐个向数组添加值。
现在,我想将另一个数组中的所有值添加到主数组中,而不是逐个添加单个值。次要数组收集十个值,当它们被收集时,它们都会被转移到主数组中。问题是,我不能简单地使用代码“array.append(other_array)”,因为我会得到以下错误:
unsupported operand type(s) for +: 'int' and 'list'

我哪里错了?


3
array.append(other_array) 不会导致引用错误信息。请展示您的真实代码。 - Sven Marnach
4个回答

29

列表可以相加:

>>> a = [1,2,3,4]
>>> b = [5,6,7,8]
>>> a+b
[1, 2, 3, 4, 5, 6, 7, 8]

并且一个可以很容易地添加到另一个的末尾:

>>> a += b
>>> a
[1, 2, 3, 4, 5, 6, 7, 8]

1
问题是关于数组,而不是列表。 - questionto42

22
你正在寻找 array.extend() 方法。而 append() 方法仅向数组中追加单个元素。

2

Array(如numpy.arrayarray模块)还是list?因为根据您的错误消息,似乎是后者。

无论如何,您可以使用+=运算符,它应该适用于大多数容器类型,但操作数必须是相同的(复合)类型。


+= 将会添加数值,但不会影响结构。 - questionto42

0
通常,如果您想将结构向右扩展(axis=1)或向下扩展(axis=0),您应该查看numpy.concatenate()函数,参见将NumPy数组连接到另一个NumPy数组
np.concatenate(arr1, arr2, axis=0) 

这里可能需要使用,向嵌套数组中添加新行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接