[python]迭代器与生成器

本文深入探讨了Python中迭代器和生成器的概念及应用。详细解释了如何使用iter函数创建迭代器,以及如何通过next方法访问迭代器中的元素。此外,还介绍了生成器的基本原理,包括如何利用yield关键字将函数转换为生成器,并通过实例演示了生成器的执行流程和特点。

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

迭代就像是遍历,迭代只能一个个往下获取,不能往上获取,需使用iter函数。

name是一个包含元素cc,dd,ee的迭代器

>>> name=iter(['cc','dd','ee'])

#访问迭代器中的元素需使用next方法

>>> print(name.__next__())

cc

>>> print(name.__next__())

dd

>>> print(name.__next__())

ee

################################生成器#######################

#在函数中加入yield那么函数就变成一个生成器,实例:

def take_money(num):

     while num>0:

           num -= 10

            yield "你拿了10哦。"

            print("还可以拿啦靓仔!")#当拿完则不执行此行代码

package = take_money(40)#给num值40

print(package.__next__())#通过next方法访问,输出为 "你拿了10哦。",当下一次执行next时才会输出"还可以拿啦靓仔!"

print(package.__next__())#输出"还可以拿啦靓仔!","你拿了10哦。"

print("no!")#中间可以跳出来执行这俩句代码,有点中断的味道,输出"no"

print("no!")#输出"no"

print(package.__next__())#"还可以拿啦靓仔!","你拿了10哦。"

print("ok")

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值