上一篇
Python迭代器实现教程 - 从入门到精通
- Python
- 2025-08-06
- 1048
Python迭代器实现教程
迭代器是Python中用于遍历集合元素的重要概念。本教程将带你了解迭代器的原理、实现方法以及实际应用。
什么是迭代器?
在Python中,迭代器是一个可以记住遍历位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有元素被访问完结束。
迭代器的工作原理
Python迭代器必须实现两个特殊方法:
- __iter__() - 返回迭代器对象本身
- __next__() - 返回集合的下一个元素,如果没有元素则抛出StopIteration异常
创建自定义迭代器
下面是一个简单的迭代器实现示例:
class MyRange:
def __init__(self, start, end):
self.current = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.current < self.end:
value = self.current
self.current += 1
return value
else:
raise StopIteration()
# 使用自定义迭代器
my_range = MyRange(1, 5)
for num in my_range:
print(num)
迭代器的优势
内存高效
迭代器一次只处理一个元素,不需要在内存中存储整个数据集
通用接口
所有迭代器使用相同的接口,简化了遍历操作
无限序列
可以创建表示无限序列的迭代器
无限序列迭代器示例
class Fibonacci:
def __init__(self):
self.prev = 0
self.curr = 1
def __iter__(self):
return self
def __next__(self):
value = self.prev
self.prev, self.curr = self.curr, self.prev + self.curr
return value
# 生成斐波那契数列
fib = Fibonacci()
for i in range(10):
print(next(fib))
迭代器 vs 可迭代对象
特性 | 迭代器 | 可迭代对象 |
---|---|---|
定义 | 实现了__iter__和__next__方法的对象 | 实现了__iter__方法的对象 |
状态 | 记住迭代位置 | 不保存状态 |
使用 | 直接使用 | 需要调用iter()方法获取迭代器 |
实际应用场景
- 处理大型数据集(避免一次性加载到内存)
- 数据库查询结果的分批处理
- 生成无限序列(如斐波那契数列)
- 实现自定义数据结构的遍历
掌握迭代器是理解Python高级特性(如生成器)的基础,希望本教程对你有所帮助!
本文由RuanRui于2025-08-06发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://www.521pj.cn/20257489.html
发表评论