全展开
Demo
#!/usr/bin/python3
from collections.abc import *
'''
flatten(a,list)
思路:
1.首先判断第二个参数是否为空 如为空,新建list 不为空,则直接在其后面加入即可
2.利用for循环,依此判断是否为可迭代对象 若是,则递归,将其中依次加入list 反之,则直接加入list
'''
def flatten(lst, out_lst=None):
if out_lst is None:
out_lst = []
for i in lst:
if isinstance(i, Iterable): # 判断i是否可迭代
flatten(i, out_lst) # 尾数递归
else:
out_lst.append(i) # 产生结果
return out_lst
print(flatten([[1,2,3],[4,5]]))
print(flatten([[1,2,3],[4,5]], [6,7]))
print(flatten([[[1,2,3],[4,5,6]]]))
运行结果