python 高级部分精华--那些书本不会告诉你的坑

Posted 拂髯客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 高级部分精华--那些书本不会告诉你的坑相关的知识,希望对你有一定的参考价值。

递归目录生成器方式, else 里的 tmp 显示获取 yield 不可缺少 , 递归算法中若要使用生成器,需要在生成器的原函数(首次调用)显式得到所有yield值

def get_file_recur(path):
    children = os.listdir(path)
    for child in children:
        qualified_child = os.path.join(path,child)
        if os.path.isfile(qualified_child):
            yield qualified_child
        else:
            tmp = get_file_recur(qualified_child)
            for item in tmp:
                yield item

for file in get_file_recur('/home/xxx/xxx/Frank Li'):
    print(file)

参考资料来源,如下 flattern list

def flattern(lst):
    for item in lst:
        if isinstance(item,list):
            inner_list = flattern(item)
            for i in inner_list:
                yield i
        else:
            yield item

l=[1,2,3,4,5,[6],[7,8,[9,[10]]]]
lst=flattern(l)
print(list(lst))

以上是关于python 高级部分精华--那些书本不会告诉你的坑的主要内容,如果未能解决你的问题,请参考以下文章

大部分教程不会告诉你的 12 个 JS 技巧

一般人都不会告诉你的Python赚钱方法

VS Code 虽开源,但其精华部分是专有的?

数据类型链表那些事儿

高级软件测试工程师精华面试题(持续更新中)

X光、CT、核磁和B超都有啥区别?怎样选择?医生不会告诉你的事