我想将两个2d数组组合成一个NX2数组,但我不知道应该在python中使用什么命令。例如,a = [1.2.3] b = [4,5,6]
,我想创建一个新的数组其中a中的元素作为x坐标b作为y坐标,c = [(1,4)],(2,5),(3,6)]
在python语言中有什么提示吗?
你很幸运,因为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
可以使用zip函数
x = [1,2,3,4]
y = [1,2,3,4]
nodes = [zip(x,y)]
在list()中使用zip()来获取列表。否则它将打印为
[<zip object at 0x0000024AE84502C0>]
不如这样做
nodes = list(zip(x,y))
它将输出
[(1, 1), (2, 2), (3, 3), (4, 4)]