从二维列表的元素排序列表?

时间:2017-11-13 00:19:46

标签: python python-3.x list

我有一个二维列表。例如:

std::function

我需要创建一个新列表,其元素是保留顺序的每个子元素的元素。

示例:

list = [[1,4,7], [2,5,8], [3,6,9]]

2 个答案:

答案 0 :(得分:2)

  

问:新列表必须首先获取每个列表的第一个元素,然后是   第二,等等..

您可以使用zip和列表理解。

list_1 = [1,4,7]
list_2 = [2,5,8]
list_3 = [3,6,9]


print([x for lst in zip(list_1, list_2, list_3) for x in lst])
# outputs > [1, 2, 3, 4, 5, 6, 7, 8, 9]

对于您的新列表,您也可以这样做,但首先使用*

解压缩列表
new_list = [[1,4,7], [2,5,8], [3,6,9]]

print([x for lst in zip(*new_list) for x in lst])
# outputs > [1, 2, 3, 4, 5, 6, 7, 8, 9]

答案 1 :(得分:1)

首先使用zip转置列表矩阵,然后将所有内部列表与itertools一起链接

还将变量列表重命名为lst,使用内置list作为变量名称不是一个好习惯

import itertools
lst = [[1,4,7], [2,5,8], [3,6,9]]
final_list = list(itertools.chain.from_iterable(zip(*lst)))
# final_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]