博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3.迭代器以及迭代器的作用
阅读量:5327 次
发布时间:2019-06-14

本文共 1671 字,大约阅读时间需要 5 分钟。

#迭代器'''迭代是访问集合元素的一种方式,迭代器是一个能够记住遍历位置的对象迭代器对象从集合的第一个元素开始访问,直到所有的元素都被访问完结束如果想访问一个元素,需要把这个元素前面的所有元素都遍历后,才可以访问'''#1.可迭代的对象,像(1),(2)这些对象称之为可迭代对象(Iterable)#(1)以直接作用for循环的数据类型有:list/tuple/dict/set/str#(2)generator:生成器和生成器函数# list1 = [11,22,33]# for i in list1:#     print(i)# for char in 'i love china!':#     print(char)#2.判断是否迭代from collections import Iterable,Iterator# def outPrint(msg):#     #判断msg是否可迭代#     flag = isinstance(msg,Iterable)#     if flag:#         for i in msg:#             print(i)#     else:#         print(msg)# outPrint(1)# outPrint([11,22,33])#练习1# print(isinstance([],Iterable))#True# print(isinstance((),Iterable))#True# print(isinstance({},Iterable))#True# print(isinstance('love',Iterable))#True# print(isinstance((x for x in range(10)),Iterable))#True# 生成器不但可以作用于for循环,还可以被next函数不断调用,并饭后下一个值,直到# 最后抛出StopIterable异常,表示无法返回下一个值#练习2#可以被next()函数调用并不断返回下一个值的对象称之为迭代器(Iterator)#如果是迭代器对象那一定可迭代#判断迭代器对象# print(isinstance([],Iterator))#False# print(isinstance((),Iterator))#False# print(isinstance({},Iterator))#False# print(isinstance('love',Iterator))#False# print(isinstance((x for x in range(10)),Iterator))#True#生成器都是Iterator对象,但list/dict/str虽然是Iterable,但不是Iterator#iter()函数#把list/dict/str等等Iterable容器,变成Iteratorlist2 = [11,22,33]# print(next(list2))list2 = iter(list2)print(next(list2))print(next(list2))print(next(list2))# print(next(list2))'''总结:1.凡是可作用于for循环的对象都是Iterable2.凡是可作用于next()的函数的对象都是Iterator3.iter()函数用于把Iterable容器,变成Iterator迭代器延展:对于"流式"数据处理方式可减少内存消耗:比如处理文件,大视频等,一下猛地把全部数据取出来放到内存里就会导致程序消耗大量内存一般我们一部分一部分的对文件进行处理'''for text_line in open('userInfo.txt'):    print(text_line)    break

 

转载于:https://www.cnblogs.com/zhangboblogs/p/8634572.html

你可能感兴趣的文章
Unity3D笔记 英保通三 脚本编写 、物体间通信
查看>>
python实现对某招聘网接口测试获取平台信息
查看>>
Algorithm——何为算法?
查看>>
Web服务器的原理
查看>>
小强升职计读书笔记
查看>>
常用的107条Javascript
查看>>
#10015 灯泡(无向图连通性+二分)
查看>>
获取EXe版本信息
查看>>
elasticsearch 集群
查看>>
忘记root密码,怎么办
查看>>
linux设备驱动归纳总结(三):1.字符型设备之设备申请【转】
查看>>
《黑客与画家》 读书笔记
查看>>
bzoj4407: 于神之怒加强版
查看>>
从qplot开始
查看>>
mysql统计一张表中条目个数的方法
查看>>
ArcGIS多面体(multipatch)解析——引
查看>>
C++ 软件开发多国语言解决方案汇总
查看>>
JS 在火狐浏览器下关闭弹窗
查看>>
css3渐变画斜线 demo
查看>>
UIView中的坐标转换
查看>>