Python 数据科学指南1.9 生成一个迭代器和生成器

生成器:生成器提供了清晰的语法,能够一次访问一个序列,并不需要使用_iter_和next()这两个函数,我们也不用写一个类了。

注意:生成器和可迭代这两者才能制造一个迭代器。

一、示例代码1

SimpleCounter = (x**2 for x in range(1,10))

tot = 0
for x in SimpleCounter:
	tot +=x

print (tot)

二、示例代码2

#函数my_gen()就是一个生成器,我们使用yield语句来返回一个序列输出。
#使用生成器对象时,我们只能访问序列一次。当我们完成对序列的访问时,就该立刻结束,不要在试图获取更多的数据。
def my_gen(low,high):
	for x in range(low,high):
		yield x**2

tot = 0
for val in my_gen(1,10):
	tot += val
print(tot)

#使用生成器+可迭代两者制造一个迭代器
gen = (x**2 for x in range(1,10))
for val in iter(gen):
	print (val)

285

1

4

9

16

25

36

49

64

81

猜你喜欢

转载自blog.csdn.net/cjx_cqupt/article/details/88219564