赞
踩
它用于对容器中的元素进行过滤处理。
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 False
- else:
- return True
-
- strings = ['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 True
- else:
- 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 True
- else:
- return False
-
- def 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()函数的各种用法,你可以更加高效地处理可迭代对象,实现自己的业务逻辑。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。