什么是迭代器?

迭代器(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生成器教程。该教程将帮助您掌握如何通过生成器简化迭代器的实现过程。

Python_迭代器