Python迭代器的类型有什么,分别是怎样的
Admin 2022-08-18 群英技术资讯 1798 次浏览
今天小编跟大家讲解下有关“Python迭代器的类型有什么,分别是怎样的”的内容 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了相关资料,希望小伙伴们看了有所帮助。迭代器(Iterator)并非Python独有的,在C++和Java中也出现了此概念。迭代器可以帮助我们解决面对复杂的数据场景时,快速简便的获取数据。
__iter__和__next__()方法。通过__iter__方法可以返回迭代器对象本身的方法。__next__()方法会使cur指针始终指向当前位置,即返回容器中的下一个值,如果容器中没有更多元素了,则会抛出StopIteration异常。container.__iter__()方法实现容器对象迭代__iter__()方法和__next__()方法__iter__():返回迭代器本身,容器可以与for...in结合使用__next__():返回迭代器返回下一项data = [1,2,3,4] it = iter(data) print(next(it)) print(next(it))
for i in it:
print(i)
对于可迭代对象,我们也可以使用for...in来进行迭代
class Myiter:
def __init__(self,times):
self.times = times
def __iter__(self):
self.n = 0
return self
def __next__(self):
if self.n <= self.times:
result = 3 ** self.n
self.n += 1
return result
else:
raise StopIteration
data = Myiter(4)
it = iter(data)
# 第1次
print(next(it))
# 第2次
print(next(it))
# 第3次
print(next(it))
# 第4次
print(next(it))
# 第5次
print(next(it))
# 第6次,超出范围触发StopIteration
print(next(it))
...
1
3
9
27
81
Traceback (most recent call last):
File "E:\workspace\uiat\cookbooks\tester.py", line 67, in <module>
print(next(it))
File "E:\workspace\uiat\cookbooks\tester.py", line 51, in __next__
raise StopIteration
StopIteration
...
__iter__() 和 __next__()两个方法即可作为迭代器本期,我们对Python Iterator迭代器由__iter__()方法和__next__()方法组成。迭代器分为Iterator和iteratable两种,因此迭代器本身也是可迭代对象的。
迭代器分为容器迭代和自定义迭代。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要给大家分享的是python中自动化定位元素,那么python中自动化定位元素都有哪些?接下来会给大家介绍到的有find_element_by_id()、find_element_by_name()、find_element_by_class_name()、find_element_by_class_name()等等八种python自动化定位元素的用法,感兴趣的朋友就继续往下看吧。
这篇文章主要为大家详细介绍了python实现水印图片功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
文本给大家介绍的是Python的字符串的内容,详细介绍了字符串的创建,字符串的定义,字符串的操作,具有一定的借鉴价值,有需要的朋友可以参考学习。
这篇文章主要介绍了Python中schedule模块关于定时任务使用方法,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
最近开发中用到了eval()与exec()这两个函数,不知道在哪种场景下用哪个函数,所以就翻了下Python的文档。这里就来简单说一下这两个函数的区
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008