首页 > 其他 > 详细

《生成器与迭代器》

时间:2020-08-05 00:42:22      阅读:126      评论:0      收藏:0      [点我收藏+]

一、迭代器

可迭代对象包含迭代器。
如果一个对象拥有__iter__方法,其是可迭代对象;如果一个对象拥有next方法,其是迭代器。
定义可迭代对象,必须实现__iter__方法;定义迭代器,必须实现__iter__和next方法。

__iter__():该方法返回的是当前对象的迭代器类的实例

next():返回迭代的每一步,实现该方法时注意要最后超出边界要抛出StopIteration异常

alist=["a","b","c"] #可迭代对象 

iter = alist.__iter__()

技术分享图片

 

 

dir(alist)

技术分享图片

 

 

二、生成器

生成器是一种特殊的迭代器,生成器自动实现了“迭代器协议”(即__iter__和next方法),不需要再手动实现两方法。
生成器在迭代的过程中可以改变当前迭代值,而修改普通迭代器的当前迭代值往往会发生异常,影响程序的执行

llist = [1,2,3,4,5]

g = (i for i in llist)

技术分享图片

 

《生成器与迭代器》

原文:https://www.cnblogs.com/boye169/p/13437150.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!