【发布时间】:2020-05-09 20:21:53
【问题描述】:
from functools import reduce
>>> numbers = [1,2,3,4,5,6]
>>> odd_numbers = filter(lambda n: n % 2 == 1, numbers)
>>> squared_odd_numbers = map(lambda n: n * n, odd_numbers)
>>> total = reduce(lambda acc, n: acc + n, squared_odd_numbers)
如果我想检查奇数的内容,我运行
list(odd_numbers)
但是,这会返回一个空列表 []。这是python 3.6+
如果我在运行过滤器功能后立即运行 list(odd_numbers)。我得到了列表元素
>>> numbers = [1,2,3,4,5,6]
>>> odd_numbers = filter(lambda n: n % 2 == 1, numbers)
>>> list(odd_numbers)
[1, 3, 5]
为什么会这样?
【问题讨论】:
标签: python-3.x