python迭代器和生成器

本文介绍了如何利用迭代器模式来替代while循环,实现按需读取大文件中的数据。通过使用Python内置的iter()函数,我们可以创建一个迭代器,它会在每次迭代时调用给定的可调用对象(在这里是读取文件的lambda函数),直到返回指定的哨兵值(空字符串)。这种方法对于处理无法一次性装入内存的大数据集非常有效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

迭代是数据处理的基石,扫描内存放不下的数据集时,我们找到一种惰性获取数据项的方式,即按需一次获取一个数据项。这就是迭代器模式。

1、手动访问迭代器内的内容

用迭代器取代while循环

import sys
f=open('a.txt')
for chunk in iter(lambda :f.read(10),''):
    n=sys.stdout.write(chunk)

关于内建函数iter的特性之一:可以选择性接受一个无参的可调用对象以及一个哨兵值作为输入。当以这种形式使用时,iter()会创建一个迭代器,然后重复用户提供的可调用对象,直到它返回哨兵值为止。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值