一、过滤函数定义
它用于对容器中的元素进行过滤处理。
二、 过滤函数语法
filter(function,iterable)
参数function:提供过滤条件的函数,返回布尔型
参数iterable: 容器类型数据
三、过滤函数的应用场景
1、筛选符合条件的元素
需求:在列表数据中 过滤大于20的数据
#提供过滤条件函数
def ft(x):return x>20#导入随机包
import random
#随机生成不重复的数据
data=random.sample(range(15,30),10)
print(data)#返回过滤对象
filtered=filter(ft,data)
print(filtered)
print('@'*100)
print(f'{data} 大于20的数:',end='')
#转换成列表
print(list(filtered))
注意:filter()函数返回值不是一个列表
如果需要返回列表类型,必须类型转换list()
2、数据清洗和预处理
需求:删除一个列表中的空字符串和None值:
def removeString(str):if str=='' or str is None:return Falseelse:return Truestrings = ['mike', 'peoper','', 'boy', None, 'python', 'regular',None,'']
print(strings)filtered=filter(removeString,strings)
print(list(filtered))
3、复杂条件筛选
需求:既能被2整除又能被4整除的元素:
#提供过滤条件函数
def ft(x):if x%2==0 and x%4==0:return Trueelse:return False
#随机生成不重复的数据
data=random.sample(range(1,30),10)
print(data)filtered=filter(ft,data)
print(f'{data} 既能被2整除又能被4整除的元素:',end='')
print(list(filtered))
4、与其他函数结合使用
需求:能被3整除的数进行过滤后再进行每个数据乘以2的映射显示
也就是使用filter函数来筛选出一个列表中符合特定条件的元素,并使用map函数对筛选出的元素进行进一步处理。
#提供过滤条件函数
def ft(x):if x%3==0:return Trueelse:return Falsedef mp(x):return x*2
#随机生成不重复的数据
data=random.sample(range(1,21),10)
print(data)ff=filter(ft,data)
print(list(ff),type(ff))
mapped=map(mp,filter(ft,data))
# mapped=map(mp,ff)
print(list(mapped))
四、总结
filter()函数是Python中一个强大且灵活的工具,能够简化代码并提高开发效率。通过掌握filter()函数的各种用法,你可以更加高效地处理可迭代对象,实现自己的业务逻辑。