Python入门之yield

本文介绍Python中生成器的使用方法,并通过实例演示如何利用生成器进行文件的逐行读取,同时展示了生成器在内存效率上的优势。

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

# 按行读取文件
with open('demo.txt', 'r') as f:
    line = f.readline()
    while line:
        print(line.strip()) #line有回车 print本身也有回车,则多处一个空行
        line = f.readline()

# 由浅入深理解生成器
#mlist = [1, 2, 3]
#mlist = [x*x for x in range(3)]
mlist = (x*x for x in range(3))
for i in mlist:
    print(i)

# 推荐http://pyzh.readthedocs.io/en/latest/the-python-yield-keyword-explained.html#id8
def mygenerator():
    mlist = range(3)
    for i in mlist:
        if i < 2:
            yield i*i

gen = mygenerator() # 返回生成器对象,函数代码并不立即执行
for i in gen:
    print(i)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值