迭代器与生成器并行

Python91

我们已经知道,可以直接作用于 for循环的数据类型有以下几种:

一类是集合数据类型,如 listtupledictsetstr等;

一类是 generator,包括生成器和带 yield的generator function。

这些可以直接作用于 for循环的对象统称为可迭代对象: Iterable

可以使用 isinstance()判断一个对象是否是 Iterable对象

而生成器不但可以作用于 for循环,还可以被 next()函数不断调用并返回下一个值,直到最后抛出 StopIteration错误表示无法继续返回下一个值了。

*可以被 next() 函数调用并不断返回下一个值的对象称为迭代器: Iterator

可以使用 isinstance()判断一个对象是否是 Iterator对象:

生成器都是 Iterator对象,但 listdictstr虽然是 Iterable,却不是 Iterator

listdictstrIterable变成 Iterator可以使用 iter()函数:

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长