用迭代器实现斐波那契数列

原创
2017/05/02 14:39
阅读数 44

定义一个Fibs类

>>> class Fibs:
	def __init__(self,max):
		self.count=max
		self.a,self.b=(0,1)
	def __next__(self):
		while self.count:
			result =self.a
			self.a,self.b=self.b,self.a+self.b
			self.count -=1
			return result		        
		raise StopIteration
	def __iter__(self):
		return self

这样用

>>> [f for f in Fibs(9)]
[0, 1, 1, 2, 3, 5, 8, 13, 21]
>>> [x for x in reversed([f for f in Fibs(9)])]
[21, 13, 8, 5, 3, 2, 1, 1, 0]

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
在线直播报名
返回顶部
顶部