python 高级部分精华--那些书本不会告诉你的坑
2021-07-10 03:05
标签:else 递归算法 att get dir 需要 instance 显示 print python 高级部分精华--那些书本不会告诉你的坑 标签:else 递归算法 att get dir 需要 instance 显示 print 原文地址:https://www.cnblogs.com/Frank99/p/9563980.html递归目录生成器方式, 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))