python学习笔记-(15)python中的循环对象

来源:互联网 发布:现代散文鉴赏辞典知乎 编辑:程序博客网 时间:2024/05/18 02:23

1. 循环对象的引入

python中,循环对象就是包含一个_next_()方法的对象,这个方法的作用就是进行到下一个结果,结束结果之后会报出StopIteration错误。举例如下:

for i in range(5):    print i

说明:上例是比较简单的for循环,那么,每次循环时会调用循环对象同时对象调用_next_()方法,直到出现StopIteration错误。其实,每次遍历都会返回一个循环对象,直到循环条件终止。

循环对象的好处:概括说就是随用随生成,所使用的元素可在循环过程中逐次生成。那么,就可以节省空间资源,提高效率。

2. Python中的生成器(可构成一个自定义的循环对象)

先举个生成器的例子:

def f():a = 1yield aa = a * ayield aprint 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)]

可以看出,表推导和生成器表达式类似,但表推导使用中括号[]。其实,表推导的原理也是利用循环对象来处理的。

0 0