python中filter函数

python中Filter函数作用

Python 中的 filter 函数用于根据特定的条件筛选序列中的元素。它接收两个参数:一个函数和一个序列,然后将序列中的每个元素传递给该函数并保留返回值为 True 的元素。最终返回一个过滤后的迭代器。

使用方法

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

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filtered_numbers = filter(is_even, numbers)
print(list(filtered_numbers))  # 输出: [2, 4, 6, 8, 10]

在这个示例中,我们定义了一个函数 is_even,该函数判断一个数是否是偶数。然后,我们使用 filter函数筛选列表 numbers 中的偶数,最后将过滤结果转成列表并打印出来。

扩展知识

filter 函数是 Python 中非常有用的基础函数之一,适用于各种场景。

1)使用 Lambda 表达式:为了简化代码,有时你可以使用lambda 表达式而不是定义一个单独的函数。

# 定义一个包含 1 到 10 的列表
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 使用 filter 函数过滤出偶数
filtered_numbers = filter(lambda n: n % 2 == 0, numbers)

# 将 filter 对象转换为列表并打印
print(list(filtered_numbers))  # 输出: [2, 4, 6, 8, 10]

2) 与内置函数结合使用:比如结合 str.isdigit 筛选列表中的数字字符串。

# 定义字符串列表
strings = ["hello", "123", "world", "456"]

# 使用 filter 函数结合 str.isdigit 过滤出全为数字的字符串
digits = filter(str.isdigit, strings)

# 将 filter 对象转换为列表并打印
print(list(digits))  # 输出: ['123', '456']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Long韵韵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值