将二维数组或列表拆分为python中的两个1维列表

时间:2016-12-20 18:13:01

标签: python arrays list list-comprehension

你有一个二维的数字列表,如:

x = [[1,2],[3,4],[5,6],[7,8],[9,10],[11,12],[13,14],[15,16],[17,18]]

您需要将其拆分为两个列表,以便从一个列表中的第一列和另一个列表中的第二列中获取数字:

[1,3,5,7,9,11,13,15,17] [2,4,6,8,10,12,14,16,18]

如何在python中完成?

我发布这个问题是因为我找不到简单的答案。 我稍后会回答。

3 个答案:

答案 0 :(得分:8)

这是使用zip作为:

的理想情况
>>> x = [[1,2],[3,4],[5,6],[7,8],[9,10],[11,12],[13,14],[15,16],[17,18]]

#       v unpack `x` list
>>> zip(*x)
[(1, 3, 5, 7, 9, 11, 13, 15, 17), (2, 4, 6, 8, 10, 12, 14, 16, 18)]

返回值是两个元组的列表。为了将每个tuple保存在变量中,您可以执行以下操作:

>>> a, b = zip(*x)

答案 1 :(得分:1)

In [27]: x = [[1,2],[3,4],[5,6],[7,8],[9,10],[11,12],[13,14],[15,16],[17,18]]

In [28]: first, second = zip(*x)

In [29]: first
Out[29]: (1, 3, 5, 7, 9, 11, 13, 15, 17)

In [30]: second
Out[30]: (2, 4, 6, 8, 10, 12, 14, 16, 18)

答案 2 :(得分:1)

x_1 = [i[0] for i in x]
x_2 = [i[1] for i in x]