Python迭代器与生成器

📅 2026/7/7 10:42:32
Python迭代器与生成器
一、迭代器、生成器是干嘛的什么时候用假设你要处理百万、千万条数据一次性全部放到列表里这样会一次性把所有数据载入内存量大直接卡死、占满内存。listbg[0,1,2,3,...]#假设数据右百万/千万迭代器、生成器就是用来不一次性存全部数据用一个算一个省内存。二、迭代器迭代器对象从集合的第一个元素开始访问直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法iter() 和 next()。字符串列表或元组对象都可用于创建迭代器numDatarange(0,50,3)iter1iter(numData)# 迭代器对象可以使用常规for语句进行遍历# for item in iter1:# print(item)# 也可以使用 next() 函数whileTrue:try:print(next(iter1))exceptStopIteration:# 迭代到头跳出循环print(end)break三、迭代器在 Python 中使用了 yield 的函数被称为生成器generator。跟普通函数不同的是生成器是一个返回迭代器的函数只能用于迭代操作更简单点理解生成器就是一个迭代器。下面是一个简单的示例展示了生成器函数的使用defcountdown(n):whilen0:yieldn n-1# 创建生成器对象generatorcountdown(5)# 通过迭代生成器获取值print(next(generator))# 输出: 5print(next(generator))# 输出: 4print(next(generator))# 输出: 3# 使用 for 循环迭代生成器forvalueingenerator:print(value)# 输出: 2 1