《Python学习手册》学习笔记(20)之第20章迭代和解析,第二部分(关键词:编程语言/Python/迭代/解析)

来源:互联网 发布:魔兽世界幻化软件 编辑:程序博客网 时间:2024/06/12 06:22

第20章 迭代和解析,第二部分

回顾列表解析:函数式编程工具

列表解析与map

增加测试和嵌套解析

列表解析和矩阵

理解列表解析

为什么要在意:列表解析和map

重访迭代器:生成器

Python对延迟提供了更多的支持——它提供了工具在需要的时候才产生结果,而不是立即产生结果。
- 生成器函数:编写为常规的def语句,但是使用yield语句一次返回一个结果,在每个结果之间挂起和继续它们的状态。
- 生成器表达式类似于上一节的列表解析,但是,它们返回按需产生结果的一个对象,而不是构建一个结果列表。

这里写图片描述

生成器函数:yield VS return

生成器表达式:迭代器遇到列表解析

生成器函数 VS 生成器表达式

状态挂起

这里写图片描述

迭代协议整合

这里写图片描述

生成器函数与Python中的迭代器协议的概念密切相关。可迭代的对象定义了一个__next__方法,它要么返回迭代中的下一项,或者引发StopIteration异常来终止迭代。一个对象的迭代器用iter内置函数接收。

要支持这一协议,函数包含一条yield语句,该语句特别编译为生成器。
(详见书上。)

生成器是单迭代器对象

生成器是单迭代器对象

用迭代工具模拟zip和map

为什么你会留意:单次迭代

内置类型和类中的值生成

Python3.0解析语法概括

解析集合和字典解析

针对集合和字典的扩展的解析语法

对迭代的各种方法进行计时

对模块计时

计时脚本

计时结果

计时模块替代方案

其他建议

函数陷阱

本地变量是静态检测的

这里写图片描述

默认和可变对象

没有return语句的函数

嵌套作用域的循环变量

本章小结

本章习题

习题解答

第四部分练习题

参考文献:
1.《Python学习手册》。

阅读全文
0 0
原创粉丝点击