在Python中,用生成器的递归的方式展开一个嵌套的list。
def flatten(nested):
try:
for sublist in nested:
if isinstance(sublist,str):
yield sublist
else:
for element in flatten(sublist):
yield element
except TypeError:
yield nested
运行后结果:
>>> list(flatten([[[1],2],[3,[4,'abc']]]))
[1, 2, 3, 4, 'abc']