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 高级部分精华--那些书本不会告诉你的坑的主要内容,如果未能解决你的问题,请参考以下文章