什么是迭代器?
迭代器(Iterator)是Python中用于遍历可迭代对象(如列表、元组、字典等)的核心概念。它通过__iter__()
和__next__()
方法实现逐个访问元素的功能,是惰性求值的典型代表。
迭代器特点
- 🔄 无缝衔接生成器:通过
yield
关键字可快速创建迭代器 - 📦 节省内存资源:适合处理大数据集,避免一次性加载全部内容
- 🔁 支持链式操作:可与
map()
、filter()
等函数结合使用 - ⚠️ 需手动控制终止:需通过
StopIteration
异常结束遍历
迭代器使用示例
# 定义一个简单迭代器
class MyIterator:
def __init__(self, data):
self.data = data
self.index = 0
def __iter__(self):
return self
def __next__(self):
if self.index >= len(self.data):
raise StopIteration
result = self.data[self.index]
self.index += 1
return result
# 使用迭代器
nums = [1, 2, 3, 4]
iter_obj = MyIterator(nums)
for num in iter_obj:
print(num)
迭代器 vs 生成器
对比项 | 迭代器 | 生成器 |
---|---|---|
实现方式 | 需手动实现__iter__() 和__next__() |
使用yield 关键字简化实现 |
内存占用 | 通常占用更多内存 | 更节省内存 |
扩展性 | 功能更灵活但代码复杂度高 | 适合简单数据生成场景 |
拓展学习
如需深入了解迭代器与生成器的关联,可查看Python生成器教程。该教程将帮助您掌握如何通过生成器简化迭代器的实现过程。