Quantcast
Channel: CodeSection,代码区,Python开发技术文章_教程 - CodeSec
Viewing all articles
Browse latest Browse all 9596

Python中的Generator的合并

$
0
0

刚学python时看到诸如:

book_name_list=(book.name for book in libary)

都觉得是一种顿悟,今天才知道它的原理yield,带有这个东西的都是generator。这么写简洁流畅、语义通顺,缺点是一直不知道怎么合并,用集合的操作符 | 会报错误:

unsupported operand type(s) for |: ‘generator’ and ‘generator’

然后发现了itertools,这个库的定义太爆了,创建高效的循环,没错就是他。那么多个generator可以这样合起来:

from itertools import chain
def generator1():
for item in 'abcdef':
yield item
def generator2():
for item in '123456':
yield item
generator3 = chain(generator1(), generator2())
for item in generator3:
print item

Viewing all articles
Browse latest Browse all 9596

Trending Articles