生成器是Python中的一个高级用法,有段时间我对生成器的理解颇为费劲,直到我看到一句话“yield语句挂起该生成器函数的状态,保留足够的信息,以便之后从它离开的地方继续执行”后,让我恍然大悟,这是生成器中的状态挂起,这句话让我想起了在大学时玩ARM单片机时经常碰到的一..
分类:
编程语言 时间:
2016-12-10 23:12:00
阅读次数:
494
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不 ...
分类:
编程语言 时间:
2016-11-28 23:41:03
阅读次数:
202
递归函数、生成器、装饰器递归:在函数执行中调用自身必须有边界条件,递归前进段和递归返回段python中递归有层次限制递归函数实现阶乘deffact(n):
ifn<=1:
return1
else:
returnn*fact(n-1)调用:fact(3)=3fact(2)=32fact(1)=32*1fact(3)6实现斐波拉契数列deffib1(n):
ifn&l..
分类:
其他好文 时间:
2016-11-28 01:24:34
阅读次数:
153
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不 ...
分类:
编程语言 时间:
2016-11-24 15:05:53
阅读次数:
192
8.1可迭代对象(Iterable)大部分对象都是可迭代,只要实现了__iter__方法的对象就是可迭代的。__iter__方法会返回迭代器(iterator)本身,例如:>>>lst=[1,2,3]
>>>lst.__iter__()
<listiteratorobjectat0x7f97c549aa50>Python提供一些语句和关键字..
分类:
编程语言 时间:
2016-10-17 16:25:26
阅读次数:
194
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不 ...
分类:
编程语言 时间:
2016-10-14 07:41:25
阅读次数:
181
首先先说斐波那契数列 生成器: 就是把斐波那契中的 print(b) 换成yield b 生成器的好处是:省内存 。 只有一个next方法 next 调用Yield, Send是给Yield传值 ...
分类:
编程语言 时间:
2016-10-13 23:43:57
阅读次数:
158
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不 ...
分类:
编程语言 时间:
2016-09-24 10:33:28
阅读次数:
195
生成器 调用生成器函数,会返回一个对象,这个对象是生成器(可用type()函数判断这个对象类型), 再利用这个对象调用 next()方法,即可获得一个序列。 传递给 yield 的值,会通过next()方法返回。 next()方法 当遇到yield时暂停函数的执行,并返回。当下一次再调用next() ...
分类:
编程语言 时间:
2016-08-28 23:44:10
阅读次数:
233
把一个列表[]改成()就创建了一个生成器:generator,generator保存的是算法。 可以用于for循环的数据类型:1、集合类型:list tuple dict set str2、generator 可以直接作用于for循环的对象统称为:可迭代对象(Iterable) 结果: 可以被nex ...
分类:
编程语言 时间:
2016-08-03 18:42:06
阅读次数:
167