《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学习手册》。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值