Python的filter函数

admin 2025-12-22 00:39:36 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍了Python的filter函数,解释了其基本用法是从可迭代对象中筛选满足条件的元素。文章强调filter返回的是迭代器,具有惰性计算特性,只能遍历一次。提供了使用lambda表达式和普通函数的示例,展示了如何筛选偶数等基本操作。文章指出filter常被误用或完全不用,旨在帮助开发者正确理解和使用这个函数。 综合评分: 83 文章分类: 安全开发,其他


cover_image

Python 的 filter 函数

原创

Lino

网络技术联盟站

2025年12月21日 18:00 江苏

各位同学,大家好!我是你们的 Python 讲师 Lino。

在 Python 的函数式工具中,filter() 是一个存在感不高,却经常被误用的函数。

不少人第一次见到它,是和 map()、列表推导式放在一起对比;

再往后,要么彻底不用,要么拿它干一些并不适合的事情。

这一节,我们把 filter() 拆干净:

它能做什么、不能做什么、在工程中该站在哪个位置。


先给一个不拐弯的定义:

filter() 用于从可迭代对象中,筛选出“满足条件”的元素

函数签名:


filter(function, iterable)


两点必须同时满足:

  • function:返回 True 或 False
  • iterable:任何可迭代对象

filter 的返回值


result = filter(lambda x: x > 0, [-2, -1, 0, 1, 2]) print(result)


输出是:



filter 返回的是迭代器

和 map() 一样:

  • 惰性计算
  • 只遍历一次
  • 需要显式消费

result = filter(lambda x: x > 0, [-2, -1, 0, 1, 2])

print(list(result))  # [1, 2] print(list(result))  # []


最基本用法:条件筛选

使用普通函数


def is_even(x):     return x % 2 == 0

nums = [1, 2, 3, 4, 5, 6] result = filter(is_even, nums)

print(list(result))



免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:网络技术联盟站 Lino《

评论:0   参与:  4