Py学习  »  Python

Python 基础视频课 - 10. 生成器和迭代器

王的机器 • 3 年前 • 464 次点击  

这是 Python 基础课的第十节 - 生成器和迭代器。该系列包含 11 节,目录如下:


  1. 编程概览

  2. 元素型数据

  3. 容器型数据

  4. 流程控制:条件-循环-异常处理

  5. 函数上:低阶函数

  6. 函数下:高阶函数

  7. 类和对象:封装-继承-多态-组合

  8. 字符串专场:格式化和正则化

  9. 解析表达式:简约也简单

  10. 生成器和迭代器:简约不简单

  11. 装饰器:高端不简单


迭代器 (iterator) 是一个有状态的 (stateful) 对象,只有在调用时才产生下一个值,而可迭代对象 (Iterable) 是无状态的 (stateless) 对象。迭代器是可迭代对象,但可迭代对象并不总是迭代器。

 

生成器 (generator) 是迭代器。创建生成器有两种方法,用生成函数和生成器表达式。普通函数使用 return 语句,而生成函数使用 yield 语句。回顾文章的列表解析式使用的是方括号,而生成器使用的是圆括号,两者区别在于:

 

  • 列表可以被重复多次,生成器只可以被用一次。

  • 列表是储存值的容器,生成器是产生值的方法。


在 Python 里,

 

  • 字典用来创建映射关系

  • 函数用来创建可调用对象

  • 生成器用来创建迭代器

 

当想要可用惰性计算的可迭代对象时,考虑用迭代器;当想创建迭代器时,考虑用生成器;当想创建生成器时,考虑用生成函数 (用 yield)  或生成表达式 (用小括号 ())。


所有学过的生成器、迭代器、可迭代对象、容器型变量、解析表达式之间的关系总结于下图。



付费用户(付 1 赠 1)可以获得:


  • 观看课程视频 (63 分钟)

  • PDF 课件

  • Python 代码 (Jupyter Notebook)





PDF 课件

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/74993
 
464 次点击