我在 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)
但是不起作用。
尝试:
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]]