你有一个二维的数字列表,如:
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中完成?
我发布这个问题是因为我找不到简单的答案。 我稍后会回答。
答案 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]