如何将列表中列表中的元组转换为列表?

How to make convert a tuple within a list within a list to a list?

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

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

我需要

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

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

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

谢谢。

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

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

或列表理解:

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

这会做你想做的事:

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

new_a = [ [ list(element) for element in elements] for elements in a]

为此,我建议您按如下所示进行 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