迭代器

栏目: Python · 发布时间: 7年前

内容简介:迭代器

概念

我们已经知道,可以直接作用于for 循环的数据类型有一下几种:

1、一类是集合数据类型,如list、tuple、dict、set、str等;

2、一类是generator(生成器),包括生成器和带yield的generator funcation;

(带yield的函数生成器和列表生成器)

这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。

可以使用isinstance()判断一个对象是否是Iterable对象:

创建迭代器对象的方法

一、iter()函数获得一个Iterator对象。

list、tuple、dict、set、str等数据类型可以用iter()函数转换成迭代器

例如:


 1 1、正常循环一个序列:
 2 for i in [1,2,3,4,5,6,7,8,9]
 3    pass
 4     .....
 5 
 6 2、用迭代器循环一个序列:
 7 #首先获得Iterator对象:
 8 it = iter([1,2,3,4,5])
 9 
10 #循环对象:
11 while True:
12     try:
13         #获得下一个值:
14         x = next(it)
15     except  StopIteration:
16         #遇到StopIteration就退出循环:
17         break
18 
19 
20 #注意:上下两个完全等价

列表循环

二、跌倒器就是可以迭代的对象。


 1 def myrange(arg):
 2     start = 0
 3     while True:
 4         if start > arg:
 5             return
 6         yield  start
 7         start += 1
 8 ret = myrange(3)
 9 r = ret.__next__()  #进入函数,找到yield,获取yield后面的数据,每运行一次,生成器就会往下执行一个数值:
10 print(r)
11 r = ret.__next__()
12 print(r)
13 r = ret.__next__()
14 print(r)
15 r = ret.__next__()
16 print(r)

迭代器实例

三、用途:

socket的时候会用到,但是代码复杂性增加

迭代器就类似于概念性的一个知识点

迭代器就是由__next__可以一个一个提取的,类似于for循环的,逐步取值的,就叫做迭代器。

例如
1、一个列表,然后用for进行遍币,其实就是执行了r = ret.__next__();
2、当迭代到最后一个值时,按理说取完后会报错的,但是由于封装到foread

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

新榜样

新榜样

新榜 编著 / 电子工业出版社 / 2016-1 / 50.00元

本书为“新榜”全新打造的新媒体运营实战指南,全书基于对当前各类公众号的对比分析,阐述互联网时代各类公众号运营之道。全书分为五个部分,分别为:如何让政务公众号接地气,如何让自媒体公众号重获新生,如何做垂直领域的特色公众号,新媒体深度人物,以及新媒体深度分析等。一起来看看 《新榜样》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

SHA 加密
SHA 加密

SHA 加密工具

html转js在线工具
html转js在线工具

html转js在线工具