【问题标题】:How to make convert a tuple within a list within a list to a list?如何将列表中的列表中的元组转换为列表?
【发布时间】:2021-10-01 11:41:00
【问题描述】:

我正在尝试将列表中的列表中的元组转换为列表。例如:

a = [[('a', 'b'), ('c', 'd')], [('e', 'f')]]

我需要

a = [[['a', 'b'], ['c', 'd']], [['e', 'f']]]

元组组可以有不同的数量,但始终处于同一级别 - 列表中的元组,列表中的元组。

有很多关于将元组转换为列表的线程,但我发现的所有内容都在较少的列表中,例如 ('a', 'b') 或 [('a', 'b')] 或没有列表的变化长度。

谢谢。

【问题讨论】:

    标签: python list tuples


    【解决方案1】:

    您可以使用两个嵌套的地图调用。

    b = list(map(lambda nested: list(map(lambda nested2: list(nested2), nested)), a))
    

    或者使用列表理解:

    b = [[list(j) for j in i]  for i in a]
    

    【讨论】:

      【解决方案2】:

      这会做你想做的:

      a = [[('a', 'b'), ('c', 'd')], [('e', 'f')]]
      
      new_a = [ [ list(element) for element in elements] for elements in a]
      

      【讨论】:

        【解决方案3】:

        为此,我建议您使用list comprehension,如下所示:

        a = [[('a', 'b'), ('c', 'd')], [('e', 'f')]]
        
        a = [[list(j) for j in i] for i in a]
        
        print(a)
        

        或者,如果您是初学者,也可以使用for loop 来达到此目的,如下所示:

        a = [[('a', 'b'), ('c', 'd')], [('e', 'f')]]
        
        for i in range(len(a)):
            for j in range(len(a[i])):
                a[i][j] = list(a[i][j])
                
        print(a)
        

        我个人建议你使用list comprehension

        【讨论】:

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