码迷,mamicode.com
首页 > 编程语言 > 详细

【Python学习】iterator 迭代器小练习

时间:2017-10-25 21:30:58      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:write   recent   学习   rect   mod   name   stdin   traceback   iterator   

http://anandology.com/python-practice-book/iterators.html 

Problem 1: Write an iterator class reverse_iter, that takes a list and iterates it from the reverse direction. ::

>>> it = reverse_iter([1, 2, 3, 4])
>>> it.next()
4
>>> it.next()
3
>>> it.next()
2
>>> it.next()
1
>>> it.next()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

写了一个,倒是实现了,不知道是不是全世界效率最低的。

class reverse_iter:
"""docstring for ClassName"""
def __init__(self,target):
self.current = 0
self.target = target
self.len = len(target)
print self.len
def next(self):
if self.current < self.len:
self.current+=1
return self.target[self.len-self.current]
else:
raise StopIteration()
def __iter__(self):
return self

ri = reverse_iter([1,2,3,4])
print ri.next()
print ri.next()
print ri.next()
print ri.next()
print ri.next()

【Python学习】iterator 迭代器小练习

标签:write   recent   学习   rect   mod   name   stdin   traceback   iterator   

原文地址:http://www.cnblogs.com/jin-wen-xin/p/7731815.html

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