用迭代器實現斐波那契數列

定義一個Fibs類python

>>> 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

這樣用code

>>> [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]
相關文章
相關標籤/搜索