python中迭代器的应用场景 |
您所在的位置:网站首页 › python迭代器的作用 › python中迭代器的应用场景 |
1.迭代器的应用场景
1). 如果数列的数据规模巨大 2). 数列有规律,但是依靠列表推导式描述不出来
2.数学中有个著名的斐波拉契数列(Fibonacci),数列中第⼀个数0,第⼆个数1,其后的每⼀个数都可由前两个数相加得到: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ... 现在我们想要通过for...in...循环来遍历迭代斐波那契数列中的前n个数。那么这个斐波那契数列我们就可以⽤迭代器来实现,每次迭代都通过数学计算来⽣成下⼀个数。 classFibIterator(object): """fib数列迭代器""" def __init__(self, n): """""" self.num1 = 0 self.num2 = 1 self.n = n # 用来保存迭代的总次数 self.i = 0 # 用来记录迭代次数
def __next__(self): # 判断是否迭代结束,如果没有到达迭代次数,则返回数据 if self.i < self.n: # 保存要返回的值 item = self.num1
# 计算num1, num2的值,方便下次迭代返回 self.num1, self.num2 = self.num2,self.num1 + self.num2
# 记录迭代次数 self.i += 1 return item else: # 到达了迭代次数,抛出异常 raise StopIteration
def __iter__(self): return self
fib =FibIterator(20) li = list(fib) print(li) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |