小甲鱼Python学习笔记

Python迭代与迭代器核心

  • 迭代的概念
    • 含义:重复过程,每次迭代结果作为下次初始值
    • 日常理解:类似产品迭代优化
    • 编程应用:for语句遍历容器元素
  • 常见迭代器类型
    • 序列类型:列表、元组、字符串
    • 映射类型:字典
    • 其他:文件对象

迭代器的2个核心内置函数(BIF)

  • iter()
    • 作用:对容器对象调用,返回其迭代器
  • next()
    • 作用:调用迭代器,返回下一个元素
    • 终止条件:无元素时抛出StopIteration异常
  • for语句的底层原理
    • 等价while循环:通过iter()获取迭代器,next()取值,捕获异常终止

迭代器的魔法方法

  • 必实现的两个魔法方法
    • iter:返回迭代器对象本身(return self)
    • next:定义迭代规则,返回下一个元素,无元素时抛异常

实战:斐波那契数列迭代器

  • 基础版迭代器实现
    1. 初始化:self.a=0,self.b=1
    2. iter:return self
    3. next:更新a和b的值,return self.a
    4. 问题:无终止条件,会无限迭代
  • 优化版:控制迭代范围
    1. 初始化新增参数self.n(默认迭代上限)
    2. __next__中加判断:若self.a > self.n,抛StopIteration
    3. 效果:可指定迭代上限,避免无限循环