如何将两个列表合并到一个数组中,这样我就不必对其进行硬编码

时间:2015-11-04 02:41:11

标签: python arrays list

例如,如果我有以下两个数组。

x = [1,3,5]
y = [2,4,6]

我不想像下面的硬编码来显示输出 因为如果我这样做,那么就没有必要从上面获得xy

arr = [[1,2],[3,4],[5,6]]

我怎样才能编写一个语句,它只是使数组识别出x的每个索引都对应y的相同索引。

因此,x = 1y = 2,依此类推。

3 个答案:

答案 0 :(得分:4)

您应该使用zip function并将其转换为如下列表:

>>> array = list(zip(x, y))
[(1, 2), (3, 4), (5, 6)]

这将创建一个元组列表。请注意,您仍然可以在元组(如列表)上执行常规索引操作等操作。如果你真的想要子列表而不是元组,那么你应该这样做:

>>> array = [list(item) for item in list(zip(x, y))]
[[1, 2], [3, 4], [5, 6]]

答案 1 :(得分:3)

arr = [list(item) for item in zip(x,y)]

答案 2 :(得分:-1)

如果你对单个联轴器是元组很好,这是另一种风格:

x = [1,3,5]
y = [2,4,6]

print zip(*[x,y]) #prints [(1, 2), (3, 4), (5, 6)]

当然你可以将它修改为:

a = zip(*[x,y])
b = [ list(n) for n in a ] #gives: [[1, 2], [3, 4], [5, 6]]
相关问题