标签:返回 生成 完整 highlight 直接 跳转 包含 二次 pre
什么是生成器?
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。
eg:
def bar(): l = [‘a‘,‘b‘,‘c‘] for i in l: yield i res = bar() for i in res: print(i) >>> a >>> b >>> c def test(): list=[] for I in range(10): list.append(i) i+=1 return list res=test() print(res) >>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] def test(): for i in range(6): yield i res=test() for i in res: print(i) >>> 0 >>> 1 >>> 2 >>> 3 >>> 4 >>> 5
总结:
生成器的特点:
1、节约内存
2、迭代到下一次的调用时,所使用的参数都是第一次所保留下的,即是说,在整个所有函数调用的参数都是第一次所调用时保留的,而不是新创建的
标签:返回 生成 完整 highlight 直接 跳转 包含 二次 pre
原文地址:https://www.cnblogs.com/twoo/p/11672169.html