一、迭代器和生成器

1、迭代器

迭代器是访问集合元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退。另外,迭代器的一大优点是不要求事先准备好整个迭代过程中所有的元素。迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之后,元素可以不存在或者被销毁。这个特点使得它特别适合用于遍历一些巨大的或是无限的集合,比如几个G的文件

特点:

访问者不需要关心迭代器内部的结构,仅需通过next()方法不断去取下一个内容

不能随机访问集合中的某个值 ,只能从头到尾依次访问

访问到一半时不能往回退

便于循环比较大的数据集合,节省内存

>>> a = iter([1,2,3,4,5])

>>> a

>>> a.__next__()

1

>>> a.__next__()

2

>>> a.__next__()

3

>>> a.__next__()

4

>>> a.__next__()

5

>>> a.__next__()

Traceback (most recent call last):

File "", line 1, in

StopIteration

2、生成器

一个函数调用时返回一个迭代器,那这个函数就叫做生成器(generator)&#x

python中pu是什么_python学习之深入相关推荐

  1. python中的文件处理_python学习——python中的文件处理

    python对文件的处理. python对文件的处理的两个内建函数: open().file(),这个两函数提供了初始化输入\输出(I\O)操作的通用接口.两函数的功能相同. 基本用法: file_o ...

  2. python中while的用法_Python学习笔记之While循环用法分析

    本文实例讲述了Python学习笔记之While循环用法.分享给大家供大家参考,具体如下: 前面一篇<Python学习笔记之For循环用法>详细介绍了Python for循环,这里再来讲述一 ...

  3. python中sn的意思_python学习笔记

    学习资料:<简明 Python 教程.pdf>Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程. 特点:1.简单 2.易学 3.开源, ...

  4. python中while not循环_Python学习-while循环逻辑运算符

    一.while循环,continue.break语句在while循环中的使用 1.while循环语句: while 条件: 代码块 执行过程:判断条件是否为真,如果为真,执行代码块,继续下次循环,继续 ...

  5. python中多维数组_python学习笔记-多维数组

    Python中初始化一个5 x 3每项为0的数组,最好方法是: multilist = [[0 for col in range(5)] for row in range(3)] 我们知道,为了初始化 ...

  6. python中4j什么意思_Python学习:4.数据类型以及运算符详解

    运算符 一.算数运算: 二.比较运算: 三.赋值运算 四.逻辑运算 五.成员运算 基本数据类型 一.Number(数字) Python3中支持int.float.bool.complex. 使用内置的 ...

  7. python中pass的用法_python学习之getpass模块使用

    我们登入linux时,输入密码是什么都不显示的,在python中也可以这样做,那就是getpass模块(在pycharm中无法使用) getpass模块中包含几个比较实用的功能: 1.getpass ...

  8. python中weekid什么意思_Python学习week4-dict字典

    1.字典的定义与初始化 1.1.python字典的特点: key-value键值对的数据集合: 可变的,无序的,key去重: key必须为可hash数据类型,value可以为任意数据类型: 1.2.定 ...

  9. python中if语句使用_Python学习笔记之if语句的使用示例

    前言 条件语句在实际开发中我们已经使用过几次了,在这里我们需要再次隆重的来介绍一下它,下面话不多说了,来一起看看详细的介绍吧. if语句 顾名思义,该语句为判断语句,先来一个简单的示例 cars=[' ...

最新文章

  1. 手写汉字笔迹识别模型汇总
  2. 2009年9月三级网络技术51CTO版考前压轴试题
  3. Python 技术篇-百度语音识别API接口调用演示
  4. ubuntu开启客户端nfs服务_linux系统文件服务
  5. 计算机ip地址无法修改密码,手提电脑怎么修改无线网络的IP地址|无线网络怎么修改密码...
  6. scrapy异步写入mysql_scrapy之异步写入数据库
  7. Zabbix添加Windows server 2012
  8. HTML期末大作业~海贼王大学生HTML网页制作10个页面作品(HTML+CSS+JavaScript)
  9. gie拉取Can‘t update master has no tracked branch
  10. mysql如何更新视图,MySQL更新视图
  11. 互联网骨干网及国际通用结算介绍
  12. ppd文件下载 linux,Linux系统R230,R270,R330,L380打印机驱动下载爱普生喷墨打印机PPD文件...
  13. 实例三十八:银行卡问题
  14. 大数据实时处理第三周课
  15. 支付宝移动支付开发错误集锦
  16. 硬件科普系列之显示篇——LCD与OLED知多少
  17. Ubuntu下安装RabbbitVCS(图形化svn管理工具)-- Ubuntu也有TortoiseSVN
  18. 关于java实体类和mysql数据库json格式的对应问题,使用mybatis-plus
  19. 在Ubuntu 14.04下安装Pepper Flash
  20. office 2010安装

热门文章

  1. 微信公众号每天定时给女友发送天气信息--0基础学会
  2. 如何将CAD图纸中的部分图形粘贴复制
  3. 如何把自己包装成程序员大佬?这里有一份「装 X 指南」
  4. QML控件学习——之仪表盘控件Dial和DialStyle(自定义仪表盘)
  5. 浅谈压缩算法的那些事儿
  6. sp,dp,px尺寸单位
  7. 闲鱼鱼塘引流什么意思?大家明白其中的技巧吗?
  8. 2022年知识产权司法保护状况发布,中创算力:尊重知识产权,共建知识产权强国!
  9. vivo 上架 app 时遇到的问题
  10. Excel中普通视图与打印预览内容显示不一致的解决方法