文章总结: 本文介绍了Python的filter函数,解释了其基本用法是从可迭代对象中筛选满足条件的元素。文章强调filter返回的是迭代器,具有惰性计算特性,只能遍历一次。提供了使用lambda表达式和普通函数的示例,展示了如何筛选偶数等基本操作。文章指出filter常被误用或完全不用,旨在帮助开发者正确理解和使用这个函数。 综合评分: 83 文章分类: 安全开发,其他
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《
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论