少女祈祷中...
min blog

python学习第五天日记

第五天:

Python 迭代(Iteration)知识点总结

一、 迭代(Iteration)基础概念

  1. 定义:通过 for 循环遍历可迭代对象中的元素的过程。

  2. 特点:只要是可迭代对象(Iterable),无论是否有下标,都可以进行迭代。

  3. 常见对象的遍历

    • 字符串 / 列表 / 元组:直接遍历元素。

    • 字典(dict)

      • 默认遍历 key:for key in dict

      • 遍历 value:for val in dict.values()

      • 遍历键值对:for key, val in dict.items()


二、 迭代器(Iterator)

  1. 可迭代对象(Iterable) vs 迭代器(Iterator)

    • Iterable:能作用于 for 循环的对象(如 list, str, dict)。

    • Iterator:能被 next() 函数调用并不断返回下一个值的对象。

  2. 转化与使用

    • 使用 iter(iterable) 将可迭代对象转化为迭代器。

    • 使用 next(iterator) 逐个获取值;元素耗尽时会抛出 StopIteration 异常。


三、 列表生成式(List Comprehension)

  1. 作用:一种简洁高效创建 List 的 Pythonic 语法。

  2. 核心语法

    • 基础形式[x * x for x in range(1, 11)]

    • 带过滤条件[x * x for x in range(1, 11) if x % 2 == 0]

    • 多重循环[(x, y) for x in [1, 2] for y in ['A', 'B']]


四、 生成器(Generator)

  1. 优势:按需计算,一边循环一边生成数据,极大地节省内存

  2. 创建方式

    • 生成器表达式:将列表生成式的 [] 改为 (),如 g = (x * x for x in range(10))

    • 生成器函数:在函数中使用 yield 关键字。每次调用 next() 或迭代时在 yield 处暂停并返回值。


五、 实用迭代技巧

  1. 并行迭代(zip():将多个可迭代对象打包配对,如 for name, score in zip(names, scores):

  2. 带索引迭代(enumerate():同时获取索引与值,如 for idx, val in enumerate(items):

  3. 反向迭代(reversed():以倒序遍历序列,如 for item in reversed(items):

评论