【问题标题】:How to convert m*n list to n*m list? [duplicate]如何将 m*n 列表转换为 n*m 列表? [复制]
【发布时间】:2021-02-11 01:16:55
【问题描述】:

如果有一个列表 [[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


【解决方案1】:

使用 numpy NumPy 旨在提供比传统 Python 列表快 50 倍的数组对象。

import numpy as np
numpy_lst = np.array(lst)
transposed = np.transpose(numpy_lst)
#if you convert back to list use
transposed_list = transposed.tolist()

【讨论】:

    【解决方案2】:

    transpose 嵌套列表的惯用方式是:

    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)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-27
      • 2020-10-03
      • 2016-09-16
      • 1970-01-01
      相关资源
      最近更新 更多