您的位置:首页 > 编程语言 > Python开发

Python的迭代器和生成器

2017-02-06 00:04 148 查看

一 概要

在了解Python的数据结构时,容器(container)、可迭代对象(iterable)、迭代器(iterator)、生成器(generator)、列表/集合/字典推导式(list,set,dict comprehension)众多概念参杂在一起,难免让初学者一头雾水,我将用一篇文章试图将这些概念以及它们之间的关系捋清楚

import queue
def tt():
for x in range(4):
print ('tt'+str(x) )
yield

def gg():
for x in range(4):
print ('xx'+str(x) )
yield

class Task():
def __init__(self):
self._queue = queue.Queue()

def add(self,gen):
self._queue.put(gen)

def run(self):
while not self._queue.empty():
for i in range(self._queue.qsize()):
try:
gen= self._queue.get()
gen.send(None)
except StopIteration:
pass
else:
self._queue.put(gen)

t=Task()
t.add(tt())
t.add(gg())
t.run()

# tt0
# xx0
# tt1
# xx1
# tt2
# xx2
# tt3
# xx3
例  

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: