1、循环对象
循环对象包含一个next方法, 这个方法作用是到下一个结果,当这一系列结果结束的时候,会报StopIteration的错误
for在循环对象时候就是不断地调用next函数,直到报StopIteration的错误
比如在读取文件中可以
for line in file:
print line
这样就把文件逐行读出来
相对于序列,用循环对象的好处在于:不用在循环还没有开始的时候,就生成好要使用的元素。所使用的元素可以在循环过程中逐次生成。这样,节省了空间,提高了效率,编程更灵活。
2、生成器
生成器跟函数差不多,只不过把return换成了yield
def gen():
a = 100
yield a
a = a*8
yield a
yield 1000
当生成器运行到yield时候,会返回值并停下来,再次运行生成器的时候,会在原来停的位置继续运行。
因此生成器可以用来循环
for a in gen()
print a
3、表推导
L = []
for x in range(10):
L.append(x**2)
可以写成
L = [x**2 for x in range(10)]
原文:http://www.cnblogs.com/qins/p/6340757.html