【问题标题】:How to transpose all the lists in a list at once? [duplicate]如何一次转置列表中的所有列表? [复制]
【发布时间】:2018-02-06 06:57:20
【问题描述】:

假设我在一个列表中有 2 个列表:

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

如果我想转置这两个列表,我会这样:

NewList = zip (List[0], List[1])

在这种情况下,如果我使用以下方法将列表导出到 csv 文件:

with open("Transposed.csv", "wb") as f:
    writer = csv.writer(f)
    writer.writerows(NewList)

我会得到这个:

1 4
2 5
3 6

现在,如果我在主列表中有大量列表,并且我想避免手动将它们中的每一个添加到 zip 函数中,有没有办法我可以做一个 for 循环来转置主列表中的所有列表?而不是这样:

NewList = zip (List[0], List[1]), ......List[20])

【问题讨论】:

    标签: python python-2.7 list transpose


    【解决方案1】:

    使用可迭代参数解包:

    >>> data = [[1,2,3], [4,5,6]]
    >>> list(zip(*data))
    [(1, 4), (2, 5), (3, 6)]
    

    【讨论】:

      【解决方案2】:
      import csv
      data = [[1,2,3], [4,5,6]]
      
      with open("Transposed.csv") as f:
          w = csv.writer(f)
          for row in zip(*data):
              w.writerow(list(map(str, row)))
      

      【讨论】:

        猜你喜欢
        • 2021-01-23
        • 2014-06-24
        • 1970-01-01
        • 1970-01-01
        • 2016-02-08
        • 2020-01-27
        • 1970-01-01
        • 2021-05-26
        • 1970-01-01
        相关资源
        最近更新 更多