def faltten(nested):
try:
for sublist in nested:
for element in faltten(sublist):
yield element
except TypeError:
yield nested
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已采纳
求解如何理解以下递归式生成器的运行过程
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
2条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
CSDN专家-黄老师 2021-06-10 14:04关注其实上述代码等价于
def faltten(nested): try: for sublist in nested: return faltten(sublist) except TypeError: yield nested
生成器是一个函数,而且函数的参数都会保留。 迭代到下一次的调用时,所使用的参数都是第一次所保留下的,即是说,在整个所有函数调用的参数都是第一次所调用时保留的,而不是新创建的。
其实你梳理每次循环的时候,递归函数传递参数变化情况就行了
如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 1无用举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2021-01-19 20:51递归做为一种算法在程序设计语言中广泛应用,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的...
- 2020-09-20 03:34在Python中,我们可以利用生成器的迭代特性来解决这个问题,生成器能够高效地生成所有可能的解决方案,而不需要一次性存储所有的解。 生成器是一种特殊的迭代器,它可以在运行时动态生成值,而不是一次性生成所有值...
- 2020-12-06 05:43weixin_39611863的博客 递归做为一种算法在程序设计语言中广泛应用,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的...
- 2021-04-29 07:13生成器算法和求解器算法均使用递归回溯,在此可以看到后者的示例。 浅橙色表示的单元格是回溯的一部分。 该算法通过从一个小区随机移动到其未访问的邻居之一来工作。 如果搜索到达没有未访问邻居的单元格,则搜索将...
- 2020-03-17 12:59程序员adny的博客 下面小编就为大家带来一篇深入理解python函数递归和生成器。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 一、什么是递归 如果函数包含了对其自身的调用,该函数就是递归的。递归...
- 2022-03-16 08:18Python热爱者的博客 递归做为一种算法在程序设计语言中广泛应用,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的...
- 2020-11-24 01:12weixin_39769984的博客 递归做为一种算法在程序设计语言中广泛应用,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的...
- 2021-01-29 21:02藩依然的博客 本文就递归算法介绍如何在Python中实现递归的思想,以及递归在Python中使用时的一些注意事项,希望能够对使用Python的朋友提供一些帮助。1通俗地认识递归为了更通俗的解释递归,我们通过一个简单的例子来说明。圣诞...
- 2021-04-16 21:23真正的迷宫生成器,具有深度优先搜索/递归回溯功能。 迷宫求解器使用右手跟随算法。 生成器脚本将根据sizes.txt指定的大小制作迷宫。 求解器脚本需要指定输入迷宫。 真正的迷宫不包含循环,也就是说,从头到尾只有...
- 2020-11-28 04:31weixin_39710991的博客 Python 递归代替循环语句,函数式编程不依赖循环语句,也不产生跟踪循环状态的开销,而使用相对简单的递归语句。在一些语言中,代码中的递归会在编译阶段被编译器通过尾调用优化(tail call optimization,TCO)技术...
- 没有解决我的问题, 去提问
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司