如果一个列表中的元素,有部分是列表。我们想把这样的一个列表,压缩成为一个单纯的列表,该怎么做呢?
代码语言:javascript复制[1, [2], [[3], 4], 5] => [1,2,3,4,5] #这是我们最终想要的结果
具体实现过程如下:
代码语言:javascript复制def spread(arg):
ret = []
for i in arg:
if isinstance(i, list):
ret.extend(i)
else:
ret.append(i)
return ret
def deep_flatten(lst):
result = []
result.extend(
spread(list(map(lambda x: deep_flatten(x) if type(x) == list else x, lst))))
return result
调用函数输出结果:
代码语言:javascript复制deep_flatten([1, [2], [[3], 4], 5])
如果你觉得对你有帮助,请分享给更多朋友,让他们一起受益。