generator初探:
1.干嘛的:当有大量数据处理的时候,再去拿列表去存数据就太跟内存过不去了。generator可以一个一个的算,用一个生成一个,内存毫发无损,损失了运算
2.怎么用:讲一个简单的初级demo,这玩意儿回头实战再研究:
def yield_funct(n):
for i in range(1,n):
yield ff(i)
print('testi====', i)
def ff(i):
return i *5
if __name__ == '__main__':
for i in yield_func(15):
print('namei=', i)
输出结果是
namei= 5
tetsi==== 1
namei= 10
tetsi==== 2
namei= 15
tetsi==== 3
namei= 20
tetsi==== 4
解释:在name中,用yield_func生成一个生成器(类似列表),这个生成器并没有实际像列表那样,而是用第几个生成第几个。于是在第一个的时候,生成了一个5,通过yield返回到name里,所有namei打印的是5,而testi为啥是1?因为在yield_func里,i指的是for中的i。实际上把这里的i写成非i即可容易区分,比如x
初步理解就这样
本文探讨了在处理大量数据时使用Generator的优势,避免了一次性加载所有数据到内存的问题。通过逐步生成和使用数据,Generator能有效节省内存资源,同时提供了一种灵活的数据处理方式。
777

被折叠的 条评论
为什么被折叠?



