摘要: 一、生成器的回溯(Generator Traceback) 对于逐步得到结果的复杂递归算法,非常适用生成器来实现。 要在不使用生成器的情况下实现这些算法,通常必须通过额外的参数来传递部分结果,让递归能够接着往下计算。 通过使用生成器,所有的递归调用都只需生成其负责部分的结果。 二、问题 八皇后:你需 阅读全文
posted @ 2018-06-07 23:55 无证骑士 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 一、生产器的方法 在生成器开始运行后,可使用生成器和外部之间的通信渠道向它提供值。这个通信渠道包括如下两点: 外部世界:外部世界可访问生成器的方法send,这个方法类似next,但接受一参数(要发送的“信息”,可以是任何对象)。 生成器:在挂起的生成器内部,yield可能用作表达式而不是语句。换言之 阅读全文
posted @ 2018-06-07 21:06 无证骑士 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 虽然生成器可以让你编写出优雅的代码,但它并不是不可或缺的。 生成器是一种使用普通函数语法定义的迭代器。 例1:创建一个将嵌套列表展开的函数 输出: 1 2 3 4 当然我们可以将for循环换成: 输出:[1, 2, 3, 4] 例2:递归生成器 处理递归时,有两种可能:基线条件和递归条件。 基线条件 阅读全文
posted @ 2018-06-07 00:10 无证骑士 阅读(174) 评论(0) 推荐(0) 编辑