将2d-array组合成元组



我想将两个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)]

相关内容

  • 没有找到相关文章

最新更新