内容简介:迭代器
概念
我们已经知道,可以直接作用于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
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
图解物联网
[ 日] NTT DATA集团、河村雅人、大塚纮史、小林佑辅、小山武士、宫崎智也、石黑佑树、小岛康平 / 丁 灵 / 人民邮电出版社 / 2017-4 / 59.00元
本书图例丰富,从设备、传感器及传输协议等构成IoT的技术要素讲起,逐步深入讲解如何灵活运用IoT。内容包括用于实现IoT的架构、传感器的种类及能从传感器获取的信息等,并介绍了传感设备原型设计必需的Arduino等平台及这些平台的选择方法,连接传感器的电路,传感器的数据分析,乃至IoT跟智能手机/可穿戴设备的联动等。此外,本书以作者们开发的IoT系统为例,讲述了硬件设置、无线通信及网络安全等运用Io......一起来看看 《图解物联网》 这本书的介绍吧!