【问题标题】:How can I convert a 3D list into a 2D list in python?如何在 python 中将 3D 列表转换为 2D 列表?
【发布时间】:2021-10-08 14:18:23
【问题描述】:

这是我的代码:

[[[3], [4]], [[5], [6]], [[7], [8]]]

如何改成:

[[3], [4], [5], [6], [7], [8]]

?

【问题讨论】:

  • 关于这个问题可以说这么多,但对于初学者来说,嵌套列表不被“nD”引用 - “列表列表的列表”至少就足够了
  • 当以any非平凡方式处理列表时,总是使用numpy。
  • @o11c 会记住这一点的。

标签: python list


【解决方案1】:

您想要展平输入列表的单个级别,请使用列表推导尝试此解决方案:

lst = [[[3], [4]], [[5], [6]], [[7], [8]]]
[e for sl in lst for e in sl]
=> [[3], [4], [5], [6], [7], [8]]

【讨论】:

    【解决方案2】:

    试试这个:

    import numpy as np
    a = np.array([[[3],[4]],[[5],[6]],[[7],[8]]])
    b = a.reshape(6,1)
    

    【讨论】:

      【解决方案3】:

      未压缩或长路:

      l3d = [[[3], [4]], [[5], [6]], [[7], [8]]]
      l2d = []
      for e1 in l3d:
         for e2 in e1:
            l2d.append(e2)
      

      【讨论】:

        【解决方案4】:
        # Provided list
        lst = [[[3], [4]], [[5], [6]], [[7], [8]]]
        
        # To do this we are going to import chain from itertools
        from itertools import chain
        
        final = list(chain(*lst))
        
        print(final)  # Output: [[3], [4], [5], [6], [7], [8]]
        

        【讨论】:

          猜你喜欢
          • 2020-10-15
          • 2021-06-04
          • 1970-01-01
          • 2019-11-22
          • 2019-06-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-03
          相关资源
          最近更新 更多