Python中filter使用

先以一个形参为例,即_filter(x): 
1、如果调用时未传入实参,则x为序列中带判别值,例如:

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

list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))
1
2
3
4
运行后输出为:[1, 5, 9, 15]

2、如果筛选逻辑需要额外的参数,则使用lambda表达式返回匿名函数,例如:

def is_odd(n):
    return lambda x: x % n == 1

n = 2
list(filter(is_odd(n), [1, 2, 4, 5, 6, 9, 10, 15]))

3.  如果一个函数需要传入多个参数 并用 filter进行过滤
不能改造filter原的方法,我们可以改变自己的函数传参类型,从而控制函数可以使用filter方法
def func_filter(vals):
    if len(vals) == 2 and vals[0] > 0 and vals[1] > 0:
        return True
    else:
        return False
filter(func_filter,[[-1,-1],[0,0],[1,1]])
filter(func_filter,'abc')
filter(func_filter,((-1,-1),(0,0),(1,1)))
--------------------- 

原文:https://blog.csdn.net/qq_29654325/article/details/77743703 
原文:https://blog.csdn.net/hfut_wowo/article/details/72864154 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值