python 可迭代对象 迭代器 生成器,python中可迭代对象是什么意思
迭代是Python最强大的功能之一,它是访问集合元素的一种方式。迭代器是一个可以记住遍历位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有元素都被访问。迭代器只能向前,不能向后。
迭代器有iter基本方法:iterator()和next()。
字符串、列表或元组对象可用于创建迭代器:
示例(Python 3.0)列表=[1,2,3,4]
创建一个迭代器对象
Print(next(it))#输出迭代器的下一个元素
一个
打印(下一页)
2
可以使用正则for语句遍历迭代器对象:
示例(Python 3.0 )#!/usr/shy发夹/python3
list=[1,2,3,4]
创建一个迭代器对象
forxinit:
print(x,end= )
执行上面的程序,输出结果如下:1234
您也可以使用next()函数:
示例(Python 3.0 )#!/usr/shy发夹/python3
Importsys#引入sys模块
list=[1,2,3,4]
创建一个迭代器对象
whileTrue:
尝试:
打印(下一页)
异常停止迭代:
sys.exit()
执行上面的程序,输出结果如下:1
2
三
四
创建一个迭代器。
将类用作迭代器需要在类中实现两个方法__iter__()和__next__()。
如果你已经了解了面向对象编程,你就会知道所有的类都有一个构造函数。Python的构造函数是__init__(),将在对象初始化时执行。
__iter__()方法返回一个特殊的迭代器对象,该对象实现__next__()方法,并通过StopIteration异常来标识迭代的完成。
__next__()方法(Python 2中的next()将返回下一个迭代器对象。
创建一个返回数字的迭代器,初始值为1,增量为1:
示例(Python 3.0 )classMyNumbers:
def__iter__(self):
self.a=1
回归自我
def__next__(自己):
x=自我
self.a=1
returnx
myclass=MyNumbers()
myiter=iter(myclass)
打印(下一个(myiter))
打印(下一个(myiter))
打印(下一个(myiter))
打印(下一个(myiter))
打印(下一个(myiter))
执行结果是:1
2
三
四
五
停止迭代
StopIteration异常用于标识迭代的完成,防止无限循环的发生。在__next__()方法中,我们可以将StopIteration异常设置为在完成指定数量的循环以结束迭代后触发。
20次迭代后停止执行:
示例(Python 3.0 )classMyNumbers:
def__iter__(self):
self.a=1
回归自我
def__next__(自己):
ifself.a=20:
x=自我
self.a=1
returnx
否则:
提高生产率
myclass=MyNumbers()
myiter=iter(myclass)
forxinmyiter:
打印(x)
执行结果是:1
2
三
四
五
六
七
八
九
10
11
12
13
14
15
16
17
18
19
20
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。