《Python学习手册》学习笔记(20)之第20章迭代和解析,第二部分(关键词:编程语言/Python/迭代/解析)
第20章 迭代和解析,第二部分
回顾列表解析:函数式编程工具
列表解析与map
增加测试和嵌套解析
列表解析和矩阵
理解列表解析
为什么要在意:列表解析和map
重访迭代器:生成器
Python对延迟提供了更多的支持——它提供了工具在需要的时候才产生结果,而不是立即产生结果。
- 生成器函数:编写为常规的def语句,但是使用yield语句一次返回一个结果,在每个结果之间挂起和继续它们的状态。
- 生成器表达式类似于上一节的列表解析,但是,它们返回按需产生结果的一个对象,而不是构建一个结果列表。
生成器函数:yield VS return
生成器表达式:迭代器遇到列表解析
生成器函数 VS 生成器表达式
状态挂起
迭代协议整合
生成器函数与Python中的迭代器协议的概念密切相关。可迭代的对象定义了一个__next__
方法,它要么返回迭代中的下一项,或者引发StopIteration异常来终止迭代。一个对象的迭代器用iter内置函数接收。
要支持这一协议,函数包含一条yield语句,该语句特别编译为生成器。
(详见书上。)
生成器是单迭代器对象
生成器是单迭代器对象
用迭代工具模拟zip和map
为什么你会留意:单次迭代
内置类型和类中的值生成
Python3.0解析语法概括
解析集合和字典解析
针对集合和字典的扩展的解析语法
对迭代的各种方法进行计时
对模块计时
计时脚本
计时结果
计时模块替代方案
其他建议
函数陷阱
本地变量是静态检测的
默认和可变对象
没有return语句的函数
嵌套作用域的循环变量
本章小结
本章习题
习题解答
第四部分练习题
参考文献:
1.《Python学习手册》。