【问题标题】:Converting list of lists of tuples to list of lists of lists将元组列表列表转换为列表列表列表
【发布时间】:2022-09-27 22:16:49
【问题描述】:

我有这个旧的随机列表:

old_list = [[(0, 1), (0, 2)], [(8, 4), (3, 7)]]

我想将元组转换为这样的列表:

>>> new_list = [[[0, 1], [0, 2]], [[8, 4], [3, 7]]]

我用列表理解尝试了以下内容,但显然这是错误的:

new_list = [list (y for y in x) for x in old_list]

    标签: python list list-comprehension


    【解决方案1】:

    你可以这样做:

    new_list = [[list(x) for x in y] for y in old_list]
    

    产生:

    [[[0, 1], [0, 2]], [[8, 4], [3, 7]]]
    

    【讨论】:

      【解决方案2】:

      您需要嵌套列表推导来创建嵌套结果。需要转换为列表的元组位于第二层。

      new_list = [[list(tup) for tup in level1] for level1 in old_list]
      

      【讨论】:

      • 大声笑,你怎么一直比我快 12 秒?
      • 做一个慢动作你不会达到 688k :)
      【解决方案3】:

      这就是你所做的:)
      list(np.array(old_list))

      【讨论】:

      • 你好呀!我建议共享您的输出,以允许其他可能不会运行您的代码的用户。
      【解决方案4】:

      您可以使用 numpy 模块转换为数组,也可以简单地使用 list() 方法转换为列表。例如:

      Code Example

      【讨论】:

        【解决方案5】:

        这是基本解决方案,没有额外列表的用户。我正在更新 old_list :

        for i in range(0, len(old_list)):
            for j in range(0, len(old_list[i])):
                old_list[i][j] = list(old_list[i][j])
        print old_list
        

        输出/输出

        [[[0, 1], [0, 2]], [[8, 4], [3, 7]]]
        

        【讨论】:

          猜你喜欢
          • 2018-12-19
          • 2012-06-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-09-28
          • 1970-01-01
          • 2012-11-02
          相关资源
          最近更新 更多