Python之filter()函数用法

本文介绍了Python内置函数filter()的用法,演示了如何通过定义一个简单的函数find_odd()来筛选出列表中的奇数元素,并给出了具体示例。

filter

Python内建的filter()函数用于过滤序列。

 

filter(func,seq)

filter()接收一个函数和一个序列。filter()函数把传入的函数依次作用于每个元素,然后根据返回值是True还是False来决定是保留还是丢弃该元素。

def find_odd(n):
	return n % 2 == 1

print(list(filter(find_odd,[1,2,3,4,5,6,7,8,9])))

>>>[1, 3, 5, 7, 9]

 

`filter()`函数Python 中用于数据筛选的核心高阶函数,能够从可迭代对象中“过滤”出满足特定条件的元素,相当于一个数据筛子[^1]。 ### 基本语法 ```python filter(function, iterable) ``` - `function`:过滤函数,必须是一个可以接受单个参数并返回布尔值的函数。返回`True`,元素保留;返回`False`,元素丢弃;若传入`None`,则默认按元素本身的布尔值来判断,`False`的元素会被过滤掉[^4]。 - `iterable`:可迭代对象,如`list`、`tuple`、`set`、`dict`、`str`等。 - 返回值:返回一个`filter`对象(迭代器),需要通过`list()`、`tuple()`或`set()`转换才能看到完整结果[^4]。 ### 示例 #### 过滤掉列表中的数字 0 ```python Demo_lists = [1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9] Result_lists = filter(lambda x: x != 0, Demo_lists) Result_lists = list(Result_lists) print(Result_lists) ``` 输出结果: ```plaintext [1, 2, 3, 4, 5, 6, 7, 8, 9] ``` #### 过滤出列表中的偶数 ```python numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = filter(lambda x: x % 2 == 0, numbers) even_numbers = list(even_numbers) print(even_numbers) ``` 输出结果: ```plaintext [2, 4, 6, 8, 10] ``` #### 过滤掉空字符串 ```python strings = ["hello", "", "world", " ", "python"] non_empty_strings = filter(lambda x: x.strip() != "", strings) non_empty_strings = list(non_empty_strings) print(non_empty_strings) ``` 输出结果: ```plaintext ['hello', 'world', 'python'] ``` ### 特点 - 高阶函数函数作为参数传递。 - 惰性迭代:不会一次性生成结果,而是迭代时才逐个判断结果。 - 有序:过滤后的元素顺序与原可迭代对象中的顺序一致[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值