深度嵌套列表的平面地图

问题描述 投票:0回答:1

我在 Python 中有以下列表:

N = [1, [2, 2], [[3, 3], 3], [[[4, 4], 4], 4], [[[[5, 5], 5], 5], 5]]

我想将其展平并获得这样的列表

[[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]

我尝试过:

sum(map(lambda x: [x, x, x], [x]), N)

但是不起作用。

python list
1个回答
0
投票

尝试:

def flatten(obj):
    if isinstance(obj, list):
        for v in obj:
            yield from flatten(v)
    else:
        yield obj


N = [1, [2, 2], [[3, 3], 3], [[[4, 4], 4], 4], [[[[5, 5], 5], 5], 5]]

out = [list(flatten(v)) for v in N]
print(out)

打印:

[[1], [2, 2], [3, 3, 3], [4, 4, 4, 4], [5, 5, 5, 5, 5]]
© www.soinside.com 2019 - 2024. All rights reserved.