Python--day4
2016-01-27 15:05
573 查看
1.迭代器原理及使用
迭代器&生成器
迭代器
迭代器是访问集合元素的一种方式.且带起对象从集合的第一个元素开始访问,知道所有的元素被访访问玩结束,迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退,另外迭代器的一大优点是不要求事先准备好整个迭代过程,中所有的元素,迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之后,元祖可以不存在或者被销毁,这个特点使得他特别适合用于便利一些巨大的或是无限的集合,比如几个G的文件.
特点:
1.访问者不需要关心迭代器内部的结构,仅需要通过next()方法不断取下一个内容.
2.不能随机访问集合中的某个值,只能从头到尾依次访问
3.访问到一半时不能方回退
4.便于循环比较大的数据集合,节省内存.
迭代器不能通过下标的方式来取值的,
生成器小案例
迭代器&生成器
迭代器
迭代器是访问集合元素的一种方式.且带起对象从集合的第一个元素开始访问,知道所有的元素被访访问玩结束,迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退,另外迭代器的一大优点是不要求事先准备好整个迭代过程,中所有的元素,迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之后,元祖可以不存在或者被销毁,这个特点使得他特别适合用于便利一些巨大的或是无限的集合,比如几个G的文件.
特点:
1.访问者不需要关心迭代器内部的结构,仅需要通过next()方法不断取下一个内容.
2.不能随机访问集合中的某个值,只能从头到尾依次访问
3.访问到一半时不能方回退
4.便于循环比较大的数据集合,节省内存.
迭代器不能通过下标的方式来取值的,
__author__ = 'Administrator' def cash_money(amount): while amount > 0: amount -=100 yield 100 print("aaasdfasdfsadfaaaa") # print(" mei qian le!!!") atm = cash_money(500) print(type(atm)) print(atm.__next__()) print(atm.__next__()) print(atm.__next__()) print(atm.__next__()) print(atm.__next__()) print(atm.__next__()) -------------------------------------------------------------------------------- #生面定义了一个函数,函数调用的时候返回的是迭代器(generator),然后函数中包含了 yield 语法 所以就变成了生成器 #生成器在调用的时候就用到了next() #输出: #输出的是函数返回的 类型 <class 'generator'> #提示第一次取钱 100 #当第二次取钱的时候就会执行print 中的内容,由此可以说明,当第一次执行完之后,程序并没有结束, aaasdfasdfsadfaaaa 100 aaasdfasdfsadfaaaa 100 aaasdfasdfsadfaaaa 100 aaasdfasdfsadfaaaa 100 aaasdfasdfsadfaaaa #当打印到第五次的时候表示已经没有值了 所以会有了以下的提示 Traceback (most recent call last): File "E:/python/day1/day4/迭代器.py", line 16, in <module> print(atm.__next__()) StopIteration
生成器小案例
相关文章推荐
- Python的import嵌套
- Python基础学习二
- Python 7.3 操作文件和目录
- python 函数返回多个值
- 小甲鱼零基础学Python课后习题第29课
- 笨方法学python(ex18--40)--read,seek,help,exit
- 细说python类1——经典类和新式类
- python基本知识之数据类型
- python pass关键字神奇吗
- 用python列表实现括号匹配
- python文件操作
- python开发中常用命令
- python的thread使用
- 关于python使用MySQLdb新增操作
- gvim一键编译运行python
- 基于Python实现通过微信搜索功能查看谁把你删除了
- python pickle
- python系列之 - 装饰器
- python中的比较
- Python学习之--数据基础(二)