迭代,很熟悉有很陌生,猛地一说,好多人摸不到头脑,但是在编程语言中,是常见的一种说法。今天我们就走进迭代,讲述一下迭代以及迭代器的用法。

迭代定义:通过for 循环遍历列表,元组,我们就称之为迭代!

迭代器定义:可以被next()函数调用并不断返回下一个值的对象。

为了统一说法,我们可以按照下面来定义;

凡是可作用于for循环的对象都称为迭代。

凡是可作用于next()函数的对象成为迭代器。

区别:集合类型list ,dict, str 是迭代但不是迭代器!

上文中说到定义区别,那么我们什么时候用,怎么用,用它有什么好处呢?我们继续。

迭代器,是具有next方法(新版__next__方法)的对象,这个方法在调用的时候不需要任何参数。在调用next方法时,迭代器返回它下一个值,否则会引发stopiteration异常。

__iter__方法:返回一个迭代器。 一个实现了__iter__方法的对象时可迭代的,一个实现了next方法的对象则是迭代器。

我们用下面的例子来讲一下迭代器。

首先创建一个名称叫做Fibs的迭代器。(我们这用的列表就是斐波那契列表。)如果对斐波那契有不清楚的可以点开下面链接看一下。

(小编在这里卖个萌:本来加上链接的,但是不确定为什么总是被认为外部链接,所以就删除了。由需要链接的小伙伴可以留言给我。希望大家不要拿鸡蛋砸我。吼!吼!吼!)

fibs=Fibs() 其次产生一个fibs对象,注:以前产生了一个Fibs对象,因为有next 方法,所以返回的Fibs迭代器。

for f in fibs:

if f >1000:

print (f)

break

将迭代器Fibs应用在for循环中,比如去寻找斐波那契数列中比1000大的数中的最小数。因为设置了break,所以循环停止了,否则会一直循环下去。

从迭代器得到序列。

迭代器可用各种构造方法显式的转化为序列,例:使list构造方法将迭代器转化为列表。

看下面例子。

以上就是今天要说的迭代以及迭代器的用法的定义,如果还有不清楚的小伙伴们可以给小编留言。

提前透露一下,我们明天要说的内容时关于生成器的,感兴趣的小伙伴欢迎继续关注。

怎么确定迭代器后面还有至少两个值_学会迭代和迭代器,让你的程序更省内存...相关推荐

  1. 怎么确定迭代器后面还有至少两个值_如何理解Python中的可迭代对象、迭代器和生成器

    ▍前言 在讨论可迭代对象.迭代器和生成器之前,先说明一下迭代器模式(iterator pattern),维基百科这么解释: 迭代器是一种最简单也最常见的设计模式.它可以让用户透过特定的接口巡访容器中的 ...

  2. 怎么确定迭代器后面还有至少两个值_为什么range不是迭代器?range到底是什么类型?

    迭代器是 23 种设计模式中最常用的一种(之一),在 Python 中随处可见它的身影,我们经常用到它,但是却不一定意识到它的存在.在关于迭代器的系列文章中(链接见文末),我至少提到了 23 种生成迭 ...

  3. 怎么确定迭代器后面还有至少两个值_JS Lazy evaluation:可迭代对象与迭代器

    本文已经过原作者 MelkorNemesis 授权翻译. Lazy evaluation Lazy evaluation常被译为"延迟计算"或"惰性计算",指的 ...

  4. el-option传两个值_真正的释家或佛学研究者、爱好者必读文献——南朝梁·释慧皎《高僧传》...

    <高僧传>南朝梁·释慧皎 <高僧传>又称<梁高僧传>,是南朝梁僧释慧皎编撰的一本佛教史书.后有<续高僧传>,包括<唐高僧传><宋高僧传 ...

  5. el-option传两个值_俗话说买房看地段,买窗看K值:如何区分K值、U值和R值

    李嘉诚曾经说过,影响房子价值的三个关键"地段.地段,还是地段",可见一个房子地段的好坏,基本决定这个房子的定价. 对于房子来说,地段就是生活氛围,其中包括交通,商业,休闲娱乐,医疗 ...

  6. [css] 如何重写行内样式?方法有哪些(至少两种)?

    [css] 如何重写行内样式?方法有哪些(至少两种)? 1, !important 最高级 2, var divStyle = document.querySelector('#div').style ...

  7. 正则数字字母下划线至少两种_8085微处理器中至少两个8位数字

    正则数字字母下划线至少两种 Problem statement: 问题陈述: To find minimum of two 8bit numberusing 8085 microprocessor. ...

  8. 设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类、三角形类来继承图形类,并实现上述两个方法

    设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类.长方形类.正方形类.三角形类来继承图形类,并实现上述两个方法 设计抽象类 就要使用abstract关键字,抽象类中的 ...

  9. 正则表达式强密码验证: 8-16个字符,不包含空格,必须包含数字,字母或字符至少两种

    验证需求: 8-16个字符,不包含空格,必须包含数字,字母或字符至少两种 正则表达式: /(?!.*\s)(?!^[\u4e00-\u9fa5]+$)(?!^[0-9]+$)(?!^[A-z]+$)( ...

最新文章

  1. TensorFlow实现多层感知机函数逼近
  2. 装饰模式(Decorator Pattern)--------结构型模式
  3. user agent stylesheet对格式的影响
  4. python基础总结--- 列表、内置函数(4-5)
  5. 集合框架 Queue---ArrayBlockingQueue
  6. 如何写出高性能的SQL语句,及如何进行SQL性能分析与调优
  7. WL-OA Kernel论文讲解——On Valid Optimal Assignment Kernels and Applications to Graph Classification
  8. L1-8 估值一亿的AI核心代码 (20 分)
  9. 嘉明的C学习之Day8--数组
  10. ERP远程管理解决方案
  11. 苹果手机来电归属地_手机号码归属地能否取消?
  12. Redis常用密令以及使用java连接操作redis
  13. 服务器和交换机物理连接_二层、三层及四层交换机的区别 | 小知识
  14. 【大数据】Hadoop生态系统及其组件
  15. Android-节日短信送祝福(功能篇:1-数据库操作类与自定义ContentProvider)
  16. 投屏电脑怎么操作?投屏电脑最常用的4种方式
  17. 鸿蒙和iqoo系统谁强,鸿蒙系统发布会,小米11降500,iQOO、酷派、魅族、惠普发布新品...
  18. linux 内存清理/释放命令
  19. BearPi_HM Nano开发板环境搭建踩坑
  20. 蓝牙是局域物联网最佳方案?「桂花网」获千万美元B+轮融资

热门文章

  1. MATLAB学习笔记(八)
  2. 服务器安装win7系统蓝屏,安装win7系统出现蓝屏| win7安装过程中蓝屏|安装win7系统时蓝屏...
  3. python爬取系统_python应用:爬虫框架Scrapy系统学习第四篇——scrapy爬取笔趣阁小说...
  4. linux拷贝到新建文件夹命令行,Linux创建文件touch,复制文件cp,tab补全,链接文件ln命令...
  5. 例1:反转一个三位整数
  6. 数据科学入门与实战:Matplotlib绘图hist
  7. html表单文本转换,HTML表格中的垂直(旋转)文本
  8. linux判断usb进程命令,一种在Linux系统下审计USB设备历史使用情况的方法与流程...
  9. php判断简写,怎么简写php 中的三元运算符
  10. matplotlib绘制箭头