python学习笔记-(15)python中的循环对象
2015-03-24 14:19
309 查看
1. 循环对象的引入
在python中,循环对象就是包含一个_next_()方法的对象,这个方法的作用就是进行到下一个结果,结束结果之后会报出StopIteration错误。举例如下:
说明:上例是比较简单的for循环,那么,每次循环时会调用循环对象同时对象调用_next_()方法,直到出现StopIteration错误。其实,每次遍历都会返回一个循环对象,直到循环条件终止。
循环对象的好处:概括说就是随用随生成,所使用的元素可在循环过程中逐次生成。那么,就可以节省空间资源,提高效率。
2. Python中的生成器(可构成一个自定义的循环对象)
先举个生成器的例子:
说明:从例子中可见,生成器的编写和函数定义类似,就是把return改为yield。生成器中遇到一个yield时,会暂停运行生成器,返回yield后面的值。当再调用生成器时,会从刚才暂停的地方继续运行,直到遇到下一个yield。生成器自身又构成一个循环器,每次循环使用一个yield返回的值。生成器中有几个yield,循环器就循环几次。
3. Python的表推导(list comprehension,可以快速的生成表)
先举例如下:
以上的例子会产生一个表list,采用简单快捷的方式(表推导)来改写例子。
list = [I ** 2 for I in range(5)]
可以看出,表推导和生成器表达式类似,但表推导使用中括号[]。其实,表推导的原理也是利用循环对象来处理的。
在python中,循环对象就是包含一个_next_()方法的对象,这个方法的作用就是进行到下一个结果,结束结果之后会报出StopIteration错误。举例如下:
for i in range(5): print i
说明:上例是比较简单的for循环,那么,每次循环时会调用循环对象同时对象调用_next_()方法,直到出现StopIteration错误。其实,每次遍历都会返回一个循环对象,直到循环条件终止。
循环对象的好处:概括说就是随用随生成,所使用的元素可在循环过程中逐次生成。那么,就可以节省空间资源,提高效率。
2. Python中的生成器(可构成一个自定义的循环对象)
先举个生成器的例子:
def f(): a = 1 yield a a = a * a yield a print f() print f()
说明:从例子中可见,生成器的编写和函数定义类似,就是把return改为yield。生成器中遇到一个yield时,会暂停运行生成器,返回yield后面的值。当再调用生成器时,会从刚才暂停的地方继续运行,直到遇到下一个yield。生成器自身又构成一个循环器,每次循环使用一个yield返回的值。生成器中有几个yield,循环器就循环几次。
3. Python的表推导(list comprehension,可以快速的生成表)
先举例如下:
list = [] for i in range(5): list.append(i ** 2)
以上的例子会产生一个表list,采用简单快捷的方式(表推导)来改写例子。
list = [I ** 2 for I in range(5)]
可以看出,表推导和生成器表达式类似,但表推导使用中括号[]。其实,表推导的原理也是利用循环对象来处理的。
相关文章推荐
- 【Python】学习笔记十五:循环对象
- Python3学习笔记06-循环设计、循环对象、函数对象、错误处理、动态类型
- Python学习笔记6:循环对象
- python 学习笔记3(循环方式;list初始化;循环对象/生成器/表推导;函数对象;异常处理)
- Python Requests-学习笔记(11)-请求与响应对象
- 丹的Python学习笔记Day5条件判断和循环
- python cookbook第三版学习笔记十二:类和对象(三)创建新的类或实例属性
- python学习笔记--类方法、对象方法、静态方法
- Python学习笔记-Python对象
- 【Python】学习笔记——-8.1、面向对象高级编程:1.使用__slots__
- 初学Python的学习笔记7----偏函数、模块、重点是面向对象
- Python学习笔记_类,类对象,实例对象
- 廖雪峰python学习笔记8:面向对象初步
- Python学习笔记总结(一)对象和流程语句总结
- python学习笔记——第七章 更加抽象(对象)
- python学习笔记--实用技巧之可迭代对象的元素分解
- python学习笔记15-执行环境
- Python学习笔记(四)Python对象类型及其运算
- Python学习笔记:循环中的break,continue和else
- 【Python】学习笔记——-7.4、获取对象信息