返回介绍

map、zip 和 filter 迭代器

发布于 2024-01-29 22:24:16 字数 878 浏览 0 评论 0 收藏 0

和range类似,map、zip以及filter内置函数在Python 3.0中也转变成迭代器以节约内存空间,而不再在内存中一次性生成一个结果列表。所有这3个函数不仅像是在Python 2.X一样处理可迭代对象,而且在Python 3.0中返回可迭代结果。和range不同,它们都是自己的迭代器——在遍历其结果一次之后,它们就用尽了。换句话说,不能在它们的结果上拥有在那些结果中保持不同位置的多个迭代器。

在上一章中我们见过一个map内置函数的例子。和其他迭代器一样,如果确实需要一个列表的话,可以用list(...)来强制一个列表,但是,对于较大的结果集来说,默认的行为可以节省不少内存空间:

上一章所介绍的zip内置函数,返回以同样方式工作的迭代器:

我们将在本书下一部分中学习的filter内置函数,也是类似的。对于传入的函数返回True的可迭代对象中的每一项,它都会返回该项(正如我们已经学习过的,Python中的True包括非空的对象):

和本小节讨论的大多数工具一样,filter可以接受一个可迭代对象并进行处理,返回一个可迭代对象并在Python 3.0中产生结果。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文