将2d阵列组合成元组

时间:2013-03-16 02:09:48

标签: python point multidimensional-array

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

用python语言提示吗?

1 个答案:

答案 0 :(得分: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(或Python 3中的itertools.zip_longest)解决此问题。

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

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