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

这是 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 课件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值