将2d阵列组合成元组

use*_*302 3 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语言提示吗?

Vol*_*ity 6

你很幸运,因为Python有一个内置的zip功能,可以完全按照你的意愿行事.

>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> zip(a, b)
[(1, 4), (2, 5), (3, 6)]
Run Code Online (Sandbox Code Playgroud)

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

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

例如:

>>> zip([1, 2], [3, 4, 5])
[(1, 3), (2, 4)]
Run Code Online (Sandbox Code Playgroud)

你可以用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)]
Run Code Online (Sandbox Code Playgroud)

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