生成器: 在函数内部包含yield关键字,那么该函数执行的结果就是生成器(生成器就是迭代器) yield的功能:1.把函数的执行结果做成迭代器(帮函数封装好__iter__,__next__方法) 2.函数暂停与再继续运行的状态是由yield保存的 yield与return的比较? 相同点:都有返回 ...
分类:
编程语言 时间:
2017-09-12 19:48:16
阅读次数:
187
在for循环中,每次yield值后,控制权就返回给for循环 生成器类似于返回一个数组的函数。生成器有参数、可以被调用,并生成值的序列。和函数一次返回整个数组不同,生成器每次只是生成一个值,这样会占用很少的内存,并且调用者可以立即处理生成的值。概括来说,生成器看起来像个函数,但是使用起来像个迭代器。 ...
分类:
编程语言 时间:
2017-09-11 10:05:15
阅读次数:
180
python生成器为什么用生成器?列表生成式:使代码更简洁、还可以执行一个函数;[i*2foriinrange(10)]生成:[0,2,4,6,8,12,14,16,18][i*2foriinrange(10)]相当于以下三句代码:a=[]foriinrange(10):a.append(i*2)通过列表生成式,我们可以直接创一个列表。但是受到内存限制,列..
分类:
编程语言 时间:
2017-09-08 18:10:37
阅读次数:
179
generator 1.生成器函数: 函数中有yield的就是生成器函数,执行生成器函数得到一个生成器,生成器具备生成某些东西的能力 yield具有返回值,退出函数体,保留进度的功能,下次调用__next__功能继续从当前位置开始执行 2.生成器: 生成器函数的产物 3.生成器的意义: python ...
分类:
编程语言 时间:
2017-09-02 20:41:51
阅读次数:
251
包子来了[4],被[mayun]吃了! 包子来了[4],被[mahuateng]吃了! 做了两个包子 包子来了[5],被[mayun]吃了! 包子来了[5],被[mahuateng]吃了! 做了两个包子 包子来了[6],被[mayun]吃了! 包子来了[6],被[mahuateng]吃了! 做了两个 ...
分类:
编程语言 时间:
2017-08-27 13:32:58
阅读次数:
211
一、什么是生成器 在Python中,由于受到内存的限制,列表容量肯定是有限的。例如我们创建一个包含一亿个元素的列表,Python首先会在内存中开辟足够的空间来存储这个包含一亿个元素的列表,然后才允许用户去使用这个列表,这就可能会导致以下问题: 1、内存中没有足够的内存空间开存储这个列表,从而导致列表 ...
分类:
编程语言 时间:
2017-08-19 18:31:57
阅读次数:
217
代码如下: 这叫协程,又叫微线程。 运行结果如下: ...
分类:
编程语言 时间:
2017-08-13 16:16:45
阅读次数:
139
#生成器
#通过列表生成式,我们可以直接创建一个列表
#但是,受到内存限制,列表容量肯定是有限的
#创建一个100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了
#如果列表元素可以按照某种算法推算出来..
分类:
编程语言 时间:
2017-08-04 16:15:57
阅读次数:
211
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不 ...
分类:
编程语言 时间:
2017-08-01 11:17:49
阅读次数:
148