假如说,没有生成器这种对象,那么如何实现这种简单的“生产者消费者”模型呢?importtimedefproducer():pro_list=[]foriinrange(10000):print"包子%s制作ing"%(i)time.sleep(0.5)pro_list.append("包子%s"%i)returnpro_listdefconsumer(pro_list):forindex,stuffed_buninenume..
分类:
编程语言 时间:
2017-03-21 23:15:27
阅读次数:
337
一.什么玩意是迭代器?先说说什么是迭代吧,迭代就是一件事情重复很多次,比如说for循环。for循环可以对一切有__iter__方法的对象进行迭代,那么什么是__iter__方法呢?一个对象是否可迭代,全都取决于这个对象是否有__iter__方法,调用对象的__iter__方法,就回返回一个迭代器..
分类:
编程语言 时间:
2017-03-21 20:03:57
阅读次数:
219
time
(name):
%name
:
baozi=%(baoziname)
c=counsumer()
c.()
b1=c.send(b1)
():
c=counsumer()
c2=counsumer()
c.()
c2.()
i():
time.sleep()
c.send(i)
c2.send(i)
producer()生成器:一边循环,一边计算的机制,称为生成器英文:generator个人总结:
目的
1.节省内存,计..
分类:
编程语言 时间:
2017-02-14 22:42:17
阅读次数:
288
在正式接触生成器之前,我们先来了解一些概念 容器(container) 容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个迭代获取,可以用in、not in关键字判断元素是否包含在容器中。通常这类数据结构把所有的元素存储在内存中(也有一些特殊的存在)。 Python中常见的容器对象: 提 ...
分类:
编程语言 时间:
2017-01-18 12:25:43
阅读次数:
242
迭代器:迭代器是一个让程序员可以遍历一个容器(特别是列表)的对象,然而,一个迭代器在遍历并读取一个容器的数据元素时,并不会执行一个迭代。迭代:他就是从某个地方(比如一个列表)取出一个元素的过程,当他们是一个循环来遍历某个东西时,这个过程就叫迭代可迭代对象:py..
分类:
其他好文 时间:
2017-01-14 00:34:34
阅读次数:
191
defconsummer(name):whileTrue:baozi=yieldprint(‘包子%s来啦,被%s吃了‘%(baozi,name))returnNonec=consummer(‘紫星大人‘)bz=‘韭菜馅‘c.send(bz)#唤醒yield并传值c.__next__()#只唤醒不传值模拟单线程下的并行效果#实际上应该是携程效果,比进程更小的一个单位importtimedef..
分类:
编程语言 时间:
2017-01-02 00:24:07
阅读次数:
426
八皇后问题: 把N个皇后,放在N*N的棋盘上面,从第一行往下放,每个皇后占一行,同时,每个皇后不能处在同一列,对角线上,有多少种放置方法。 思路: 典型的回溯问题: 1.当要放置最后一个皇后时候,默认前N-1个皇后已经全部放置好了,那么验证在第N行上的每个位置是否可行,即是否与之前的皇后在同一列或者 ...
分类:
编程语言 时间:
2016-12-24 02:20:48
阅读次数:
245
防伪码:忘情公子著python中的yield:在之前发布的《python之列表解析与生成器》中我们有提到过,生成器所实现的是跟列表解析近似的效果,但是我们不能对生成器做一些属于列表解析的操作。因为生成器本身就不是一个列表,它只是模拟了一个类似列表的行为,因此,施加在列表中的..
分类:
编程语言 时间:
2016-12-23 02:29:07
阅读次数:
239
防伪码:忘情公子著什么是列表解析?列表解析就是根据已有列表,高效生成新列表的方式列表解析是python迭代机制的一种应用,它常用于实现创建新的列表,因此要放置于[]中语法:[expressionforiter_variniterable][expressionforiter_variniterableifcond_expr]例:In[1]:L=[i**..
分类:
编程语言 时间:
2016-12-16 02:10:01
阅读次数:
284