【发布时间】:2018-01-19 02:38:29
【问题描述】:
我正在尝试实现我自己的itertools.compress 版本,问题是我偶然发现了返回类型。我的意思是这两个函数都返回一个迭代器,但我认为第二个函数不被视为生成器函数,因为内部没有 yield 语句。所以我的问题是,这两个实现是等价的吗?
def compress (seq, selectors):
from operator import itemgetter
fst = itemgetter (0)
snd = itemgetter (1)
yield from map (fst, filter (snd, zip (seq, selectors)))
def compress (seq, selectors):
from operator import itemgetter
fst = itemgetter (0)
snd = itemgetter (1)
return map (fst, filter (snd, zip (seq, selectors)))
【问题讨论】:
标签: python python-3.x itertools yield-from