【问题标题】:Splitting a 2 dimensional array or a list into two 1 dimensional lists in python [duplicate]在python中将二维数组或列表拆分为两个一维列表[重复]
【发布时间】:2017-05-06 01:12:00
【问题描述】:

您有一个二维数字列表,例如:

x = [[1,2],[3,4],[5,6],[7,8],[9,10],[11,12],[13,14],[15,16],[17,18]]

您需要将其拆分为两个列表,以便从一个列表的第一列和另一个列表的第二列中获取数字:

[1,3,5,7,9,11,13,15,17] [2,4,6,8,10,12,14,16,18]

在 python 中如何实现?

我发布这个问题是因为我找不到一个简单的答案。 我稍后会回复。

【问题讨论】:

    标签: python arrays list list-comprehension


    【解决方案1】:

    这是使用zip作为的理想情况:

    >>> x = [[1,2],[3,4],[5,6],[7,8],[9,10],[11,12],[13,14],[15,16],[17,18]]
    
    #       v unpack `x` list
    >>> zip(*x)
    [(1, 3, 5, 7, 9, 11, 13, 15, 17), (2, 4, 6, 8, 10, 12, 14, 16, 18)]
    

    返回值是两个元组的列表。为了将每个tuple 保存在变量中,您可以这样做:

    >>> a, b = zip(*x)
    

    【讨论】:

      【解决方案2】:
      In [27]: x = [[1,2],[3,4],[5,6],[7,8],[9,10],[11,12],[13,14],[15,16],[17,18]]
      
      In [28]: first, second = zip(*x)
      
      In [29]: first
      Out[29]: (1, 3, 5, 7, 9, 11, 13, 15, 17)
      
      In [30]: second
      Out[30]: (2, 4, 6, 8, 10, 12, 14, 16, 18)
      

      【讨论】:

        【解决方案3】:
        x_1 = [i[0] for i in x]
        x_2 = [i[1] for i in x]
        

        【讨论】:

          猜你喜欢
          • 2021-01-30
          • 1970-01-01
          • 2023-02-19
          • 2021-02-02
          • 2012-04-10
          • 2012-11-27
          • 2020-05-30
          • 1970-01-01
          • 2011-07-24
          相关资源
          最近更新 更多