Python 官方文档:入门教程 => 点击学习
目录前言1. 什么是迭代器?2. 迭代器类型3. 迭代器分类容器迭代器遍历迭代器自定义迭代器总结前言 当我们需要对列表(list)、元组(tuple)、字典(dictionary)和
当我们需要对列表(list)、元组(tuple)、字典(dictionary)和集合(set)的元素进行遍历时,其实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两种,因此迭代器本身也是可迭代对象的。
迭代器分为容器迭代和自定义迭代。
到此这篇关于Python 迭代器Iterator详情的文章就介绍到这了,更多相关Python Iterator内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Python 迭代器Iterator详情
本文链接: https://lsjlt.com/news/118406.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0