python-迭代器和生成器案例

本文介绍了Python中的迭代器和生成器的使用,包括手动迭代、生成器的运行原理,以及反转迭代器、enumerate函数和zip函数的示例应用。通过这些工具,可以高效地处理序列和迭代操作。
摘要由CSDN通过智能技术生成
手动迭代

对于迭代器和迭代对象,可以使用迭代工具,比如for循环,也可以自己手动迭代
手动迭代需要自己处理StopIteration异常

迭代器手动迭代

因为迭代器内置了__next__方法,调用next()就会自动调用__next__方法
(1)文件是一个迭代器

f=open("text.text")

try:
    while True:
        line=next(f)
        print(line,end='')
except StopIteration:
    pass
finally:
    f.close()

(2)列表是一个可迭代对象,需要先调用iter函数生成一个迭代器

L=[1,2]

l=iter(L)

print(next(l))
print(next(l))
print(next(l))

运行结果:

1
2
Traceback (most recent call last):
  File "/Users/jingsli/PycharmProjects/mocklearn/gernatorlearn/demo6.py", line 8, in <module>
    print(next(l))
StopIteration
生成器

函数中只要出现了yield语句,就会将其转变成一个生成器,生成器只会在next调用时才会运行

def countdown(n):
    print("Starting to count from ",n)
    while n>0:
        yield n
        n
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值