#迭代器
'''
迭代是访问集合元素的一种方式,迭代器是一个能够记住遍历位置的对象
迭代器对象从集合的第一个元素开始访问,直到所有的元素都被访问完结束
如果想访问一个元素,需要把这个元素前面的所有元素都遍历后,才可以访问
'''
#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容器,变成Iterator
list2 = [11,22,33]
# print(next(list2))
list2 = iter(list2)
print(next(list2))
print(next(list2))
print(next(list2))
# print(next(list2))
'''
总结:
1.凡是可作用于for循环的对象都是Iterable
2.凡是可作用于next()的函数的对象都是Iterator
3.iter()函数用于把Iterable容器,变成Iterator迭代器延展:
对于"流式"数据处理方式可减少内存消耗:
比如处理文件,大视频等,一下猛地把全部数据取出来放到内存里就会导致程序消耗大量内存
一般我们一部分一部分的对文件进行处理
'''
for text_line in open('userInfo.txt'):print(text_line)break

  

转载于:https://www.cnblogs.com/zxf123/p/8908929.html

迭代器以及迭代器的作用相关推荐

  1. python迭代器和生成器的作用_python迭代器与生成器的详细介绍

    一.什么玩意是迭代器? 先说说什么是迭代吧,迭代就是一件事情重复很多次,比如说for循环. for循环可以对一切有iter方法的对象进行迭代,那么什么是iter方法呢? 一个对象是否可迭代,全都取决于 ...

  2. 迭代器Iterator接口的作用及其使用

    1. 迭代器Iterator的作用 什么是迭代器? 迭代器: 可以被next()函数调用并不断返回下一个值的对象称之为迭代器(Iterator) 从另一种角度来定义迭代器就是:提供一种方法访问一个容器 ...

  3. C++中的迭代器(STL迭代器)iterator

    1.Cpp中的迭代器 要访问顺序容器和关联容器中的元素,需要通过迭代器(iterator)进行.迭代器是一个变量,相当于容器和操纵容器的算法之间的中介.迭代器可以指向容器中的某个元素,通过迭代器就可以 ...

  4. es6 迭代器_揭秘ES6迭代器和迭代器

    es6 迭代器 by Tiago Lopes Ferreira 由Tiago Lopes Ferreira 揭秘ES6迭代器和迭代器 (Demystifying ES6 Iterables & ...

  5. python列表迭代器_python迭代器生成器-迭代器和list区别

    迭代 生成 for循环遍历的原理 for循环遍历的原理就是迭代,in后面必须是可迭代对象 为什么要有迭代器 对于序列类型:字符串.列表.元组,我们可以使用索引的方式迭代取出其包含的元素.但对于字典.集 ...

  6. python3生成器与迭代器_python3迭代器和生成器 | 吴老二

    迭代函数就是一个利用for...in来完成的一个过程,但是呢?在没说迭代函数之前我们需要了解一下什么是迭代器,什么是生成器,两者的区别是什么,先一个一个的学习. 迭代器 先学习一下什么是迭代器,迭代器 ...

  7. mysql迭代器_迭代器 - 刘海子 - 博客园

    一,三层装饰器 import time def outter1(func): def wrapper(*args, **kwargs): start = time.time() res = func( ...

  8. ▲什么是迭代器?迭代器有什么作用?

    什么是迭代器? 先说说它是干嘛的吧!迭代器的作用是用来访问容器(用来保存元素的数据结构)中的元素,所以使用迭代器,我们就可以访问容器中里面的元素.没错!这和访问数组这个序列的指针一样,因为数组范围内的 ...

  9. php mysql迭代器_php 迭代器

    迭代器(Iterator)模式,又叫做游标(Cursor)模式.GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节. 百度百科: http: ...

最新文章

  1. css删除线_前端删除文字贯穿线的方法有哪些
  2. 中国AI创新者论坛将于3月21日在清华大学举办
  3. sharepoint2013保存当前输入的列表
  4. window.location跳转页面
  5. SQLserver分页 高效率
  6. ECharts 实现人民的名义关系图谱 代码开源
  7. 牛客题霸 [分糖果问题] C++题解/答案
  8. java ee cdi_Java EE CDI Producer方法教程
  9. iangularjs 模板,AngularJS模板中的三元运算符
  10. java equ,Java equals方法详解
  11. ibatis.net:第六天,QueryForList
  12. C语言文件的随机读写
  13. group python 读hdf5_Python处理Excel模块的对比分析
  14. hadoop无法启动DataNode问题
  15. 使用ajax请求cgi,Python CGI同步AJAX请求
  16. 数据分析模型 第六章
  17. 学习笔记 | 深度学习相关研究与展望 Review of deep learning
  18. 第1章 数据库系统概论-单元测验-数据库原理及应用
  19. 4款超好用的时间轴制作软件
  20. 计算机的内存时序参数,电脑内存条很重要的一个参数:时序

热门文章

  1. 数据库常用增删改查记录等语句
  2. linux性能分析常用的命令
  3. 鼠标放上超链接显示背景效果
  4. C#颜色和名称样式对照表【转载】
  5. powercmd注册码
  6. 3 useReducer及其实现
  7. ORA-00980与PL/SQL程序编译出错
  8. 搭建一个基于http的yum服务器
  9. java文件处理之压缩,分割
  10. Nginx 笔记与总结(14)expires 缓存设置