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)

python中迭代器的应用场景相关推荐

  1. python有关迭代器和生成器的面试题_【面试题 | Python中迭代器和生成器的区别?】- 环球网校...

    [摘要]今天给大家解答一道Python常见的面试题,希望这个面试栏目,给那些准备面试的同学,提供一点点帮助!小编会从最基础的面试题开始,每天一题.如果参考答案不够好,或者有错误的话,麻烦大家可以在留言 ...

  2. python迭代器好处_关于Python中迭代器的作用

    迭代器的定义:含有__iter__()方法和__next__()方法的就是迭代器,即(iterate) 含有__iter__()方法就可以使用for循环,即iterable(可迭代的) Iterabl ...

  3. python中迭代器有哪些_Python迭代器:什么是Python中的迭代器以及如何使用它?

    Python编程语言已经扩展了创新的每一个方面,包括机器学习.数据科学.人工智能等,这些概念是Python作为编程语言取得成功的基石.在本文中,我们将通过以下概念来理解Pytho Python编程语言 ...

  4. pythonfor循环遍历list_为什么for循环可以遍历list:Python中迭代器与生成器

    1 引言 只要你学了Python语言,就不会不知道for循环,也肯定用for循环来遍历一个列表(list),那为什么for循环可以遍历list,而不能遍历int类型对象呢?怎么让一个自定义的对象可遍历 ...

  5. python中迭代器的实现原理_Python 进阶应用教程

    Python 中的迭代器实现原理 在数学中,集合表示由一个或多个确定的元素所构成的整体.在 Python 中,列表.元组.集合可以用于表示数学中的集合. 例如,分别使用列表.元组.集合表示了一个包含 ...

  6. python列表迭代器_关于Python中迭代器的作用

    迭代器的定义:含有__iter__()方法和__next__()方法的就是迭代器,即(iterate) 含有__iter__()方法就可以使用for循环,即iterable(可迭代的) Iterabl ...

  7. 关于Python中迭代器的作用

    迭代器的定义:含有__iter__()方法和__next__()方法的就是迭代器,即(iterate) 含有__iter__()方法就可以使用for循环,即iterable(可迭代的) Iterabl ...

  8. python中迭代器和可迭代对象的区别_Python 可迭代对象迭代器生成器的区别

    生成器是一种特殊的迭代器,生成器自动实现了"迭代器协议"(即__iter__和next方法),不需要再手动实现两方法. 首先从字面意思来解释Iterable和Iterator的区别 ...

  9. 玩转Python中迭代器与迭代对象的使用与演示

    0.什么是迭代器(iterator)与迭代对象? 比如:python中的集合数据类型,如 list . tuple . dict . set . str 等,我们可以使用for遍历其中的每个元素,此外 ...

最新文章

  1. Cocos Creator 音频文件Audio的绑定与使用(TypeScript)
  2. 人工智能乌托邦 迪拜认为2071年人类应该这样生活!
  3. 被上海爱立信录取,GL
  4. Docker最全教程——从理论到实战(九)
  5. Membership 数据字典
  6. sed教程入门与实例练习(一)
  7. Java增强型for
  8. 第一册:lesson forty three。
  9. qfiledialog的取消_QFileDialog类(老九学堂C++会员友情翻译,不喜勿喷)
  10. python有什么用-python都可以做什么用
  11. Android Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)
  12. 如果在安卓后台杀死程序怎么进行保存
  13. 阿里云张献涛:如何修炼云计算的弹指神通
  14. shell脚本-从路径提取文件名、后缀
  15. 视频教程-R语言数据分析挖掘实战-大数据
  16. 单元测试用例编写总结
  17. 小程序商城需要食品流通许可证吗?
  18. [CareerCup] 9.8 Represent N Cents 美分的组成
  19. 家用无线路由器设置技巧
  20. 可以显示九天天气情况的天气预报哦-LINUX下JAVA自制服务器端,申请公网IP,处理数据。。第二个项目

热门文章

  1. sublime中编译的sass如何改变css输出风格?【这里有答案】
  2. lightoj1259 线性筛的另一种写法 v变成bool标记数组
  3. 自己封装的一个原生JS拖动方法。
  4. 正则表达式替换排除特定情况
  5. 最新版本_adt-bundle-windows-x86_64-20140702 无法建立avd
  6. Entityframework批量删除
  7. a.out.h 头文件分析 \linux-1.0\linux\include\linux\a.out.h
  8. SQL PROCEDURE和 FUNCTION的区别
  9. Linux 30岁了~我们也老了
  10. java开机自动运行,怎么用java实现程序开机自动运行