Skip to content

26 迭代器

学习目标

理解迭代器协议,掌握迭代器的创建和使用,学会使用itertools模块进行高效的数据处理。

主要内容

  • 迭代器协议:iter__和__next
  • 可迭代对象vs迭代器
  • 自定义迭代器的实现
  • iter()和next()函数
  • StopIteration异常
  • 迭代器的惰性求值特性
  • itertools模块的使用
  • 迭代器vs生成器的区别

文件说明

01_iterator_basics.py

学习内容:迭代器基础概念和协议

  • 迭代器协议的定义(__iter__和__next__方法)
  • 可迭代对象与迭代器的区别
  • 内置迭代器的使用
  • 迭代器的基本工作原理

重点知识点

  • 理解迭代器协议的两个核心方法
  • 掌握可迭代对象和迭代器的概念区别
  • 学会判断对象是否可迭代

运行方式python3 01_iterator_basics.py

02_custom_iterators.py

学习内容:自定义迭代器的实现

  • 创建自定义迭代器类
  • 实现__iter__和__next__方法
  • 处理迭代结束条件
  • 实用的自定义迭代器示例

重点知识点

  • 掌握自定义迭代器的实现步骤
  • 理解迭代器状态管理
  • 学会设计可重用的迭代器

运行方式python3 02_custom_iterators.py

03_iter_next_functions.py

学习内容:iter()和next()内置函数的使用

  • iter()函数的多种用法
  • next()函数的参数和返回值
  • 使用iter()创建迭代器
  • 哨兵值的使用技巧

重点知识点

  • 掌握iter()函数的不同调用方式
  • 理解next()函数的默认值参数
  • 学会使用哨兵值控制迭代

运行方式python3 03_iter_next_functions.py

04_stopiteration.py

学习内容:StopIteration异常的处理

  • StopIteration异常的作用
  • 异常处理在迭代中的应用
  • 自定义异常处理逻辑
  • 迭代器的优雅结束

重点知识点

  • 理解StopIteration异常的机制
  • 掌握异常处理的最佳实践
  • 学会设计健壮的迭代器

运行方式python3 04_stopiteration.py

05_lazy_evaluation.py

学习内容:迭代器的惰性求值特性

  • 惰性求值的概念和优势
  • 内存效率的对比分析
  • 惰性求值的实际应用
  • 大数据处理的优化技巧

重点知识点

  • 理解惰性求值的工作原理
  • 掌握内存优化的方法
  • 学会处理大数据集

运行方式python3 05_lazy_evaluation.py

06_itertools_module.py

学习内容:itertools模块的使用

  • itertools模块的常用函数
  • 无限迭代器的使用
  • 组合和排列迭代器
  • 实用的数据处理技巧

重点知识点

  • 掌握itertools的核心函数
  • 理解无限迭代器的应用场景
  • 学会高效的数据组合方法

运行方式python3 06_itertools_module.py

07_iterator_vs_generator.py

学习内容:迭代器与生成器的对比

  • 迭代器和生成器的区别
  • 性能和内存使用对比
  • 使用场景的选择
  • 代码简洁性分析

重点知识点

  • 理解两种方式的优缺点
  • 掌握选择标准
  • 学会根据需求选择合适的方法

运行方式python3 07_iterator_vs_generator.py

08_exercises.py

学习内容:综合练习和实战应用

  • 迭代器的综合应用
  • 实际问题的解决方案
  • 性能优化实践
  • 代码质量提升

重点知识点

  • 综合运用所学知识
  • 解决实际编程问题
  • 提高代码效率和质量

运行方式python3 08_exercises.py

学习建议

  1. 循序渐进:按照文件编号顺序学习,每个概念都建立在前面的基础上
  2. 动手实践:运行每个示例代码,观察输出结果,理解执行过程
  3. 对比分析:特别注意迭代器与其他数据结构的区别和优势
  4. 性能测试:使用内存分析工具观察迭代器的内存效率
  5. 实际应用:尝试在自己的项目中使用迭代器优化代码

使用方法

bash
# 进入目录
cd 26-iterators

# 运行单个文件
python3 01_iterator_basics.py

# 或者运行所有示例
for file in *.py; do echo "Running $file"; python3 "$file"; echo; done

练习要点

  1. 理解迭代器协议:掌握__iter__和__next__方法的实现
  2. 自定义迭代器:能够根据需求设计和实现迭代器
  3. 内存效率:理解惰性求值带来的内存优势
  4. itertools应用:熟练使用itertools模块处理数据
  5. 性能优化:学会选择合适的迭代方式优化程序性能
  6. 异常处理:正确处理迭代过程中的异常情况
  7. 实际应用:能够在实际项目中应用迭代器解决问题

学习路径

基础概念 → 自定义实现 → 内置函数 → 异常处理 → 性能优化 → 标准库 → 对比分析 → 综合应用
    ↓           ↓           ↓           ↓           ↓           ↓           ↓           ↓
01_basics → 02_custom → 03_functions → 04_exception → 05_lazy → 06_itertools → 07_compare → 08_exercises

通过系统学习这些内容,你将全面掌握Python迭代器的使用,能够编写更高效、更优雅的代码。

Released under the MIT License.