三重嵌套列表comprahension python。可能吗?

时间:2018-07-22 05:38:30

标签: list list-comprehension

我正在练习嵌套列表理解,但遇到一些我无法在线解决或找到任何解决方案的问题:<< / p>

nested_lista = [[2,1,2,3],[1,2,3,4],[4,4,[16,1,3]]]

使用循环可轻松遍历此嵌套列表的每一层

def nested_loops():
    for x in nested_lista:

        for y in x:
            print(y)

            if type(y) == list:

                for z in y:
                    print(z)

输出:

2
1
2
3
1
2
3
4
4
4
[16, 1, 3]
16
1
3

现在我正在尝试通过嵌套列表理解来实现类似的输出,但是无论我尝试什么都行不通; /

这是我想出的:

[[[print(y) for y in z if type(z)==list]print(z) for z in x]for x in nested_lista]

或者至少我尝试遍历最后一层,但是它也行不通

[[[print(y) for y in z if type(z)==list] for z in x]for x in nested_lista]

有可能解决这个问题还是我应该放弃?

1 个答案:

答案 0 :(得分:0)

假期2周后头脑清醒,我花了30分钟的时间才能得到答案。

准备更多的嵌套:

answer = [[[print(y) if type(y) is not list else print(x) for x in y] if type(y) == list else print(y) for y in z]for z in nested_lista]

较短的结果相同:

answer2 = [[[print(x)  for x in y] if type(y) == list else print(y) for y in z]for z in nested_lista]

输出:

2
1
2
3
1
2
3
4
4
4
16
1
3

不确定为什么我会收到“-”。