码迷,mamicode.com
首页 > 其他好文 > 详细

迭代器

时间:2017-06-30 13:52:24      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:不能   __next__   返回   方便   obj   调用   logs   next   for 循环   

迭代器的优点:

1提供了一种不依赖于索引的取值方式

2.惰性计算,节省内存

迭代器的缺点

1,取值不如按照索引取值方便

2,一次性的,只能往后走不能往前走

2无法获得长度

迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退)

可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法)

for 循环本质就是遵循可迭代协议的访问方式

先调用object.__iter__()方法,

dic={0:[1,2,3],1:[4,5,6],2:[7,8,9]}
x=dic.__iter__()
x=dic[1].__iter__()
print(x.__next__())
print(x.__next__())
print(x.__next__())

调用__iter__()方法,就可以转得到迭代器。

迭代器

标签:不能   __next__   返回   方便   obj   调用   logs   next   for 循环   

原文地址:http://www.cnblogs.com/yuyang26/p/7019671.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!