嵌套列表的扁平化展示

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)))

 

posted @ 2019-02-27 10:00  bluemoonsky  阅读(532)  评论(0)    收藏  举报