迭代:是通过重复执行的代码处理相似的数据集的过程,并且本次迭代的处理数据要依赖上一次的结果继续往下做,上一次产生的结果为下一次产生结果的初始状态,如果中途有任何停顿,都不能算是迭代。例如:

(1)非迭代例子loop = 0

while loop

print("Hello world!")

loop += 1

(2)迭代例子loop = 0

while loop

print(loop)

loop += 1

例1仅是循环3次输出" Hello world!",输出的数据不依赖上一次的数据,因此不是跌代。

在python中通常用for …in遍历元组、列表、字典。而for … in后面需要那个可迭代对象。那么在python中什么是可迭代对象呢?

在python中

(1)可迭代对象(iterable),是指拥有了__iter__的内置方法的对象。

(2)迭代器(iterator) ,是指拥__iter__与__next__方法的对象。

在这里__iner__需要返回一个迭代器对象,__next__方法可以取出值,并停留到取值的位置,以便可取出下一个值。

在这里可以看出一个迭代器一定是一个可迭代对象,而一个可迭代对象不一定是迭代器。

在python中可以用isinstance(object,Iterable)判断对象是否为可迭代对象。用isinstance(object,Iterator)判断对象是否为迭代器。In [1]: from collections import Iterable

In [2]: from collections import Iterator

In [3]: isinstance(1,Iterable)

Out[3]: False

In [4]: isinstance(1,Iterator)

Out[4]: False

In [5]: isinstance((1,2),Iterable)

Out[5]: True

In [6]: isinstance((1,2),Iterator)

Out[6]: FalseIn [7]: class D():

...:     def __iter__(self):

...:         pass

...:     def __next__(self):

...:         pass

...:

In [8]: d = D()

In [9]: isinstance(d,Iterator)

Out[9]: True

In [10]:

python实现迭代:列如,用迭代实现斐波那契数列:class Fibonacci(object):

def __init__(self,all_num):

"""初始化类属性"""

#定义一个实例属性,存放要实现斐波那契数列的个数

self.all_num = all_num

#定义count实例属性,作为迭代的退出条件判断

self.count = 0

#实现斐波那契数列定义a=0,b=1

self.a = 0

self.b = 1

def __iter__(self):

"""在这里self所指3对象本身是一个

迭代器,所以可以返回自身

"""

return self

def __next__(self):

"""

next,实现迭代返回结果

"""

#判断输出的数列个数,是否小于需要的数列个数

if self.count

#rect最终要输出的斐波那契数列

rect = self.a

#在这里重复让a=b,b=a+b,来实现斐波那契数列

self.a, self.b = self.b, self.a + self.b

self.count += 1

return rect

else:

#当迭代遇到StopIteration异常时便会停止迭代

raise StopIteration

fibonacci = Fibonacci(10)

for fibo_num in fibonacci:

print(fibo_num)

迭代:通过存储一种生成方式,而不是生成结果,来实现数据存储。从而极大的节约了存储空间。

注意:

在python2.x中 range()函数后面存的是一个列表,xrange()存的是一个可迭代对象。而在python3.x中range()存的是一个迭代对象,相当于python2.x中的xrange()。

众多python培训视频,尽在python学习网,欢迎在线学习!

python迭代是什么意思_如何理解python中的迭代相关推荐

  1. python如何初始化对象数组_如何理解Python中的面向对象编程?

    (由Python大本营付费下载自视觉中国) 作者 | Radek Fabisiak 译者 | 弯月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 现如今面向对象编程的使用非常广泛,本文 ...

  2. python是什么意思讯_初步理解Python进程的信号通讯

    信号的概念 信号(signal)-- 进程之间通讯的方式,是一种软件中断.一个进程一旦接收到信号就会打断原来的程序执行流程来处理信号. 几个常用信号: SIGINT 终止进程 中断进程 (contro ...

  3. python list 切片 复杂度_彻底理解Python list切片原理

    关于list的insert函数 list#insert(ind,value)在ind元素前面插入value 首先对ind进行预处理:如果ind<0,则ind+=len(a),这样一来ind就变成 ...

  4. python异步回调实现原理_快速理解Python异步编程的基本原理

    第一个例子 假设你需要用电饭煲煮饭,用洗衣机洗衣服,给朋友打电话让他过来吃饭.其中,电饭煲需要30分钟才能把饭煮好,洗衣机需要40分钟才能把衣服洗好,朋友需要50分钟才能到你家.那么,是不是你需要在这 ...

  5. python传递utf8 到c++_深入理解Python的TLS机制和Threading.local()

    ? "Python猫" ,一个值得加星标的公众号 花下猫语:分享一篇深度好文,文章有点长,值得收藏细读.作者: Lateautunm4lin 来源:https://zhuanlan ...

  6. python iterable对象_如何理解Python中的iterable对象

    转载请注明出处:https://www.jianshu.com/u/5e6f798c903a [^*] 表示注脚,在文末可以查看对应连接,但简书不支持该语法. 首先,容器和 iterable 间没有必 ...

  7. python函数可以作为容器对象吗_正确理解Python函数是第一类对象

    正确理解 Python函数,能够帮助我们更好地理解 Python 装饰器.匿名函数(lambda).函数式编程等高阶技术. 函数(Function)作为程序语言中不可或缺的一部分,太稀松平常了.但函数 ...

  8. 如何用python写数值运算_如何理解Python的数值运算?

    1 基本算术运算 1.1 使用规则 – Python解析器相当于一个简单的计算器 – Python解析器可以接受简单的算术表达式 – 运算符可以使加(+)减(-)乘(*)除(/) 1.2 实操理解 # ...

  9. python手写一个迭代器_搞清楚 Python 的迭代器、可迭代对象、生成器

    很多伙伴对 Python 的迭代器.可迭代对象.生成器这几个概念有点搞不清楚,我来说说我的理解,希望对需要的朋友有所帮助. 1 迭代器协议 迭代器协议是核心,搞懂了这个,上面的几个概念也就很好理解了. ...

最新文章

  1. MySql 创建索引原则
  2. python的setup如何安装_如何安装python的setuptool
  3. Android笔记 fragment入门 动态加载fragment demo+ 判断横竖屏
  4. JavaScript--函数
  5. hua图软件 mac_sai mac中文版|sai绘画软件 For Mac下载 v3.0 官方版 - 121苹果网
  6. Ubuntu下使用Monaco字体
  7. Java CRC32基本使用
  8. 打印机喷嘴清洗必杀武器
  9. Vue源码分析之-源码下载和打包调试
  10. excel几个数相加等于某个数_『excel表如何从一列数据中筛选出合计等于某数的某些数?』...
  11. coreldraw常用快捷键
  12. Node.js 服务端图片处理利器——sharp 进阶操作指南
  13. 代码质量保证体系(上)
  14. zookeeper羊群效应
  15. 行走在网格之间:微博用户关系模型
  16. 第十三周作业-必做3
  17. 《软件工程》-用户界面设计
  18. 痔疮最佳治疗方法 十人九痔 不必害羞
  19. linux用独显运行steam,Steam使数以千计的Windows游戏可以在Linux上轻松玩
  20. 原创|对接三方服务商回调鉴权的程序代码设计

热门文章

  1. 模电和数电在应用上的区别和联系
  2. ESP8266 UART 使用说明
  3. 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。
  4. 硬盘上有损坏区域,该如何重新分区
  5. 2 个python美化表格数据输出结果的工具,摸鱼简直心安理得~
  6. 给网站加上一键分享功能
  7. AT24C02读写程序
  8. 一个前端初学者的2018年终总结 | 掘金年度征文
  9. python接口自动化测试书籍_蜗牛出版之《接口自动化测试开发实战教程》书籍详解!...
  10. 安卓开发板之串口通信,通过modbus Rtu协议控制下位机