Python filter()函数的简单理解与用法

如同字面意思,可以原地保留某个对象中满足指定要求的元素。

例如,我们想要去除列表中的指定数,给定一个数组A如下:

A = [3, 7, 8, 6, 9, 8, 2, 1, 8]

现在我们想要去除里面的所有数字8。一个最简单的方法当然是写for循环:

A = [3, 7, 8, 6, 9, 8, 2, 1, 8]
for a in A:
    if a == 8:
        A.remove(8)
        
print(A)

但是这样的话就不太简洁。利用filter函数的写法如下:

A = [3, 7, 8, 6, 9, 8, 2, 1, 8]
def not_8(x):
    return x != 8
A = filter(not_8, A)

print(list(A))

这里将判定条件单独封装出来是为了方便理解,实际上:

filter(not_8, A)

与匿名函数写法

filter(lambda x: x != 8, A)

是等同的,后者在实际代码中更为常见。


总结,形式化的语法规范如下:

filter(function, iterable)
  • iterable:可被迭代(被for循环)的对象,最常用的就是列表了
  • function:判定函数,当iterable中元素传入时,返回为True的被保留,反之不被保留
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值