为什么在我的lambda函数上使用filter()和map()之类的函数时不返回任何值?

马切洛

我正在使用Jupyter笔记本,为了练习,我在代码中使用lambdafilter函数从给定列表中滤除偶数,该偶数由1到10组成。

该代码显示了我尝试执行的操作,但是输出不是我期望的。我把代码放了一段时间,然后尝试使用一个map()函数,这次是对列表的值求平方,但是它也没有给出正确的输出。

filter代码:

l = [1,2,3,4,5,6,7,8,9,10]
evenNumbers = filter(lambda x: x % 2 == 0, l)
print(evenNumbers)
#response
<filter object at 0x000002023F87F5F8>

map代码:

l = [1,2,3,4,5,6,7,8,9,10]
squaredNumbers = map(lambda x: x ** 2, l)
print(squaredNumbers)
#response
<map object at 0x000002023F85BA90>

我希望输出是values 2, 4, 6, 8, 10,在第二种情况下是一个正方形列表。相反,代码给了我以上的答案。我很确定问题出在lambda哪里,但这是什么?

拉尔夫

阅读的文档map()(对也是一样filter()),它明确指出:

返回一个迭代器适用功能,可迭代的每一个项目...

因此,这是预期的行为,因为它不会一次性计算所有元素(节省内存和CPU时间),但会等到您需要它们时:

>>> map(lambda x: x ** 2, l)
<map object at 0x7f375ec905f8>

您可以遍历结果:

>>> for e in map(lambda x: x ** 2, l):
...     print(e)

1
4
9
16
25
36
49
64
81
100

或将其转换为列表或元组:

>>> list(map(lambda x: x ** 2, l))
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么 dask 在 CUDA 函数上不返回任何内容?

为什么我的填充函数不返回任何值?

为什么当我递归调用函数时,我的函数不返回以前的值,而不返回新的值?

为什么 .map 函数在反应中不返回任何内容

为什么我的异步函数不返回任何结果?

为什么我的路径函数不返回任何图像

Python:在不返回任何内容的函数上

如果函数未明确使用“ ret”,为什么不返回任何值

为什么我的arrow函数不返回值?

使用递归时不返回任何函数

为什么在成员函数上为* this指定左值引用不同于不指定任何内容?

函数不返回值,为什么?

为什么我可以在此函数上使用no void或return值

为什么下面的函数不返回任何值,它总是返回空

当我使用 find_all 函数时,为什么 beautifulsoup 不会返回所有值?

为什么在map函数中使用async-await仍然返回promise,而不返回已解析的值?

为什么我的递归二进制搜索函数不返回任何内容?

为什么我的第二个函数不返回任何东西?

从案例类外部查询时,为什么getClass在案例类构造函数参数上返回不同的值?

main函数不返回任何内容。为什么?

为什么输入函数不返回任何东西?

如果javascript中的函数不返回任何内容,为什么?

为什么类中的函数不返回任何内容?

为什么字典在使用函数时返回 None ,而它在 Python 中返回我想要的函数

在函数内部时,pop()是否不返回任何值?

访问 VBA 函数在查询时不返回任何值

python函数在检查字谜时不返回任何值

为什么函数内部和函数外部的值不匹配?

为什么Clojure函数不返回值返回nil?