Python 3 的'filter”、'map”和'reduce”有何变化,以及如何调整我的代码?

Linda Hamilton
发布: 2024-11-27 16:35:12
原创
750 人浏览过

How Have Python 3's `filter`, `map`, and `reduce` Changed, and How Can I Adapt My Code?

Python 3:适应filter、map和reduce的演变

在Python 2中,filter、map和reduce函数提供了操作数据的简洁方法收藏。然而,这些函数在Python 3中发生了重大变化。

filter和map:迭代器而不是列表

filter和map现在返回迭代器,而不是返回列表。这一变化符合 Python 3 倡导懒惰和高效的设计理念。迭代器通过根据需要产生元素来节省内存并提高性能,而不是提前创建整个列表。

要获得与过滤器或映射结果等效的列表,可以使用 list() 函数如下:

filtered_list = list(filter(f, range(2, 25)))
mapped_list = list(map(cube, range(1, 11)))
登录后复制

reduce:已弃用和替换

Python 3 已删除了reduce 函数。它已被降级为 functools 模块,称为 functools.reduce()。这一变化是由围绕使用reduce 的误解引发的。在大多数情况下,显式 for 循环被认为更具可读性和效率。

请注意,functools.reduce() 与 Python 2 中的 reduce 具有相同的用途。但是,如果您的代码严重依赖于 reduce,请重新访问它建议探索替代方法(例如显式 for 循环或高阶函数)。

通过接受这些更改,您可以使您的 Python 代码适应最新版本并采取其在性能和可读性方面的改进优势。

以上是Python 3 的'filter”、'map”和'reduce”有何变化,以及如何调整我的代码?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板