人生苦短,我用python。

一、迭代器

1、可迭代对象 Iterable

迭代是访问集合元素的一种方式。

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

  • 一类是集合数据类型,如 list 、 tuple 、 dict 、 set 、 str 等;
  • 一类是 generator ,包括生成器和带 yield 的generator function。
1
2
3
4
5
6
from collections import Iterable

isinstance([],Iterable) # True,使用 isinstance() 判断一个对象是否是 Iterable 对象
isinstance({},Iterable) # True
isinstance('abc', Iterable) # True
isinstance((x for x in range(10)),Iterable) # True

2、迭代器 Iterator

迭代器是一个可以记住遍历的位置的对象。

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

1
2
3
4
5
6
from collections import Iterator

isinstance((x for x in range(10)),Iterator) # True,使用 isinstance() 判断一个对象是否是 Iterator 对象
isinstance([],Iterator) # False
isinstance({},Iterator) # False
isinstance('abc',Iterator) # False

注意:生成器都是 Iterator 对象,但 list 、 dict 、 str 虽然是 Iterable ,却不是 Iterator 。

把 list 、 dict 、 str 等 Iterable 变成 Iterator 可以使用 iter() 函数:

1
2
3
isinstance(iter([]),Iterator)  # True
isinstance(iter({}),Iterator) # True
isinstance(iter('abc'),Iterator) # True

持续更新…

最后更新: 2018年12月04日 15:46

原始链接: http://pythonfood.github.io/2017/12/30/python迭代器/

× 多少都行~
打赏二维码