迭代器和生成器

迭代器,一个实现了 --iter-- 方法 和 --next-- 方法的对象,迭代器同时也是一个可迭代的对象

python 中的列表、元组、字符是迭代对象,如果实现了iter方法和next方法 然后他就是迭代器

for ....in.. ..循环本质就是先通过iter()函数获取一个可迭代对象的迭代器,然后对获取的迭代器不断调用next()方法来获取下一个值

生成器是一种特殊的迭代器,只要在函数中有 yield(i:ou d) 关键字就称为生成器,当程序代码运行到 关键字 yield 程序就会暂停

关键字 yield 的两个作用,1)保存当前的运行状态,然后暂停执行 2)将 yeild 关键字后面表达式的值作为返回值返回,起到 return 的作用 这是我们可以使用 next()函数 和 send()函数唤醒,两个唤醒函数的区别在在于,send()函数可以在唤醒的同时向断点处传入一个附加的数据

生成器的主要作用是为了减少内存的占用,比如用生成器生成大量数据的时候,因为生成器封装了算法,每次调用再去调用算法,这样就起到了节省内存的作用

创建一个生成器,1)我们只要把一个列表生成式的 【】 改成 ()就可以了

2) 在函数中添加 yield 关键字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值