迭代器

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

内容简介:迭代器

概念

我们已经知道,可以直接作用于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

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

查看所有标签

猜你喜欢:

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

细节决定交互设计的成败

细节决定交互设计的成败

张亮 / 2009-3 / 49.00元

《细节决定交互设计的成败》是一本非常实用的有关软件界面的交互设计和可用性设计方面知识的书籍,通过采用一问一答的形式,你将会有针对性地学习到一些能够很快应用在自己软件开发工作中的细节知识和诀窍。例如,如何减轻用户的等待感,如何预防和减少用户的使用错误等。另外,你会发现阅读《细节决定交互设计的成败》时会非常轻松和愉悦;这是由于《细节决定交互设计的成败》写作上的两个特点:第一,采用较多日常生活中的例子来......一起来看看 《细节决定交互设计的成败》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码