3

我想将两个二维数组组合成一个 NX2 数组,但我不知道我应该在 python 中使用什么命令。例如,a = [1.2.3] b = [4,5,6]我想要一个新数组,其中 a 中的元素作为 x 坐标,b 作为 y 坐标,c = [(1,4)],(2,5),(3,6)]

在 python 语言中对此有任何提示吗?

4

1 回答 1

6

你很幸运,因为 Python 有一个内置zip函数可以完全满足你的需求。

>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> zip(a, b)
[(1, 4), (2, 5), (3, 6)]

请注意,在 Python 3 中,zip返回的是迭代器,而不是列表,因此您必须使用list(zip(a, b))来获取列表。

另请注意,zip将结果的长度截断为最小列表。

例如:

>>> zip([1, 2], [3, 4, 5])
[(1, 3), (2, 4)]

您可以使用itertools.izip_longest(或itertools.zip_longest在 Python 3 中)解决此问题。

>>> import itertools
>>> list(itertools.izip_longest([1, 2], [3, 4, 5], fillvalue=0))
[(1, 3), (2, 4), (0, 5)]

这将使用fillvalue来填补空白。默认情况下,fillvalue设置为None

于 2013-03-16T02:11:00.493 回答