我想實現我自己的itertools.compress
版本,問題是我偶然發現了返回類型。我的意思是這兩個函數都返回一個迭代器,但我認爲第二個函數不被視爲生成器函數,因爲裏面沒有yield語句。所以我的問題是,這兩個實現是否相同?`return iterator`和`iterator`產生的區別
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)))