【问题标题】:List of lists into two separate lists [duplicate]列表列表分为两个单独的列表[重复]
【发布时间】:2021-08-06 20:56:48
【问题描述】:

我有一个如下列表:

l = [[[2.04356, 0.799842], 0.940545], [[0.600883, 0.363704], -0.104026], [[-0.150264, -0.0907573], -0.756651]]

我现在想将此列表拆分为两个列表:

X = [[2.04356, 0.799842],[0.600883, 0.363704],[-0.150264, -0.0907573]]
y = [[0.940545],[-0.104026],[-0.756651]]

我也觉得

my_list2, my_list1 = zip(*l)

my_list1 = [i[0] for i in l]
my_list2 = [i[1] for i in l]

会工作,但他们没有给我想要的输出。

【问题讨论】:

  • my_list2 = [i[0] for i in l] - 你写的是 0 而不是 1
  • 如果你想让第二个输出y的列表中的每个元素,那么你需要做my_list2 = [[i[1]] for i in l]

标签: python list


【解决方案1】:

你的 my_list1 没问题,但第二个应该是 i[1] 并包含在一个列表中 [i[1]] 以获得你的输出

x_list = [i[0] for i in l]
y_list = [[i[1]] for i in l]

【讨论】:

    【解决方案2】:

    你可以试试numpy

    # create a nested list
    my_list = [[[2.04356, 0.799842], 0.940545], [[0.600883, 0.363704], -0.104026], [[-0.150264, -0.0907573], -0.756651]]
    
    # convert to numpy array
    import numpy as np
    arr_l = np.array(my_list)
    
    my_list1 = arr_l[:, 0]
    my_list2 = arr_l[:, 1]
    

    当您的列表很大时,这会很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-12
      • 1970-01-01
      • 2016-12-04
      • 2021-02-10
      • 2019-02-05
      • 2012-10-20
      • 1970-01-01
      • 2021-03-27
      相关资源
      最近更新 更多