Python迭代器定义与简单用法分析
什么是迭代器?
Python迭代器是一个可以实现依次返回对象元素的对象,它让我们可以通过一个循环来遍历一个容器(如列表或元组)中的元素,而不需要使用一个计数器来访问容器的每个元素。
在Python中,迭代器一般通过定义一个类来实现。一个迭代器对象有两个基本的方法:__iter__ 和 __next__。
- __iter__方法返回迭代器对象自身。
- __next__方法返回容器中的下一个元素。当没有更多元素时,抛出 StopIteration 异常。
迭代器 Python 代码示例
Demo 1
class MyNumbers:
def __iter__(self):
self.a = 1
return self
def __next__(self):
x = self.a
self.a += 1
return x
myclass = MyNumbers()
myiter = iter(myclass)
print(next(myiter))
print(next(myiter))
print(next(myiter))
运行结果:
1
2
3
在上述示例中,我们定义了一个名为 MyNumbers 的类,它是一个迭代器。
我们的迭代器类 MyNumbers 中有两个方法:__iter__ 和 __next__。
- __iter__ 方法返回迭代器对象,并将变量 a 初始化为 1。
- __next__ 方法将 a 返回,然后将 a 增加 1。
我们使用该迭代器来迭代拥有 3 个元素的序列 1、2 和 3。
Demo 2
我们还可以使用 for-in 结构,来遍历出迭代器的值:
class MyNumbers:
def __iter__(self):
self.a = 1
return self
def __next__(self):
if self.a <= 20:
x = self.a
self.a += 1
return x
else:
raise StopIteration
myclass = MyNumbers()
for x in myclass:
print(x)
运行结果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
在这个示例中,我们使用 for-in 结构来遍历包含 20 个整数的迭代器对象。当迭代器中没有其它元素时,__next__ 方法会抛出 StopIteration 异常,从而迭代器的遍历结束。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python迭代器定义与简单用法分析 - Python技术站