第五天:
Python 迭代(Iteration)知识点总结
一、 迭代(Iteration)基础概念
定义:通过
for循环遍历可迭代对象中的元素的过程。特点:只要是可迭代对象(Iterable),无论是否有下标,都可以进行迭代。
常见对象的遍历:
字符串 / 列表 / 元组:直接遍历元素。
字典(dict):
默认遍历 key:
for key in dict遍历 value:
for val in dict.values()遍历键值对:
for key, val in dict.items()
二、 迭代器(Iterator)
可迭代对象(Iterable) vs 迭代器(Iterator):
Iterable:能作用于
for循环的对象(如list,str,dict)。Iterator:能被
next()函数调用并不断返回下一个值的对象。
转化与使用:
使用
iter(iterable)将可迭代对象转化为迭代器。使用
next(iterator)逐个获取值;元素耗尽时会抛出StopIteration异常。
三、 列表生成式(List Comprehension)
作用:一种简洁高效创建 List 的 Pythonic 语法。
核心语法:
基础形式:
[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)
优势:按需计算,一边循环一边生成数据,极大地节省内存。
创建方式:
生成器表达式:将列表生成式的
[]改为(),如g = (x * x for x in range(10))。生成器函数:在函数中使用
yield关键字。每次调用next()或迭代时在yield处暂停并返回值。
五、 实用迭代技巧
并行迭代(
zip()):将多个可迭代对象打包配对,如for name, score in zip(names, scores):带索引迭代(
enumerate()):同时获取索引与值,如for idx, val in enumerate(items):反向迭代(
reversed()):以倒序遍历序列,如for item in reversed(items):
评论