首页 > 解决方案 > 如何将 m*n 列表转换为 n*m 列表?

问题描述

如果有一个列表 [[1,2,3],[4,5,6]] 我如何将其转换为 [[1,4],[2,5],[3,6]] ?

def colu(j, data):
    return [data[i][j] for i in range(len(data))]

我知道这段代码是从右到左的,但我不知道如何以相反的方式进行。

标签: python

解决方案


转置嵌套列表的惯用方法是:

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

res = list(zip(*lst))
print(res)  # [(1, 4), (2, 5), (3, 6)]

如果您坚持使用列表而不是元组:

res = [list(sublist) for sublist in zip(*lst)]

推荐阅读