当前位置: 移动技术网 > IT编程>脚本编程>Python > Python 迭代器

Python 迭代器

2019年04月30日  | 移动技术网IT编程  | 我要评论

天地英雄私服,独医无二无弹窗,泰安长途汽车站

python 迭代器,可作用于for循环的类型一:

list tuple dict set str

还有数据结构generator 统称为:iterable

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

>>> from collections import iterable

>>> isinstance([],iterable)
true
>>> isinstance({},iterable)
true
>>> isinstance((),iterable)
true
>>> isinstance(([]),iterable)
true
>>> isinstance(100,iterable)
false

可以被next()函数调用并不断返回下一个值的对象称为迭代器:iterator(不一定是生成器,但生成器一定是迭代器)

可以通过dir命令,查看对象是否具有__next__

>>> from collections import iterator

>>> isinstance((x for i in range(5)),iterator)
true

>>> isinstance([],iterator)
false

可以把list dict str 等iterable 变成 iterator 通过使用iter()函数(内置函数):

>>> a=[1,2,3]
>>> iter(a)

>>> b=iter(a)
>>> b.__next__()
1
>>> b.__next__()
2

因为python的iterator对象表示的是一个数据流,iterator对象可以被next()函数调用不断返回下一个数据,直到没有数据时,抛出stopiteration错误,可以把这个数据流看作是一个有序序列,但我们不能提前知道序列的长度,只能next()实现按需求计算下一个,所以iterator 的计算是惰性的。

for循环的本质上就是利用next()实现的

文件对象的循环for line in f: 也是如此。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网