嵌套列表的扁平化展示

def flatten1(lis):
    ret=[]
    def f(lis):
        for item in lis:
            if isinstance(item,list):
                f(item)
            else:
                ret.append(item)
    f(lis)
    return ret

def flatten2(lis):
    ret=[]
    for item in lis:
        if not isinstance(item,list):
            ret.append(item)
        else:
            ret.extend(flatten2(item))
    return ret

def flatten3(lis):
    for item in lis:
        if isinstance(item,list):
            for i in flatten3(item):
                yield i
        else:
            yield item

a=[1,[2,3],[4,[5,6],7]]

print(flatten1(a))
print(flatten2(a))
print(list(flatten3(a)))
原文地址:https://www.cnblogs.com/liaoxuewen/p/10441741.html