当前位置:   article > 正文

Python 过滤函数filter()详解_python filter函数

python filter函数

一、过滤函数定义

         它用于对容器中的元素进行过滤处理。

二、 过滤函数语法

filter(function,iterable)

参数function:提供过滤条件的函数,返回布尔型

参数iterable: 容器类型数据

三、过滤函数的应用场景

    1、筛选符合条件的元素

     需求:在列表数据中 过滤大于20的数据

  1. #提供过滤条件函数
  2. def ft(x):
  3. return x>20
  4. #导入随机包
  5. import random
  6. #随机生成不重复的数据
  7. data=random.sample(range(15,30),10)
  8. print(data)
  9. #返回过滤对象
  10. filtered=filter(ft,data)
  11. print(filtered)
  12. print('@'*100)
  13. print(f'{data} 大于20的数:',end='')
  14. #转换成列表
  15. print(list(filtered))

注意:filter()函数返回值不是一个列表

          如果需要返回列表类型,必须类型转换list()

2、数据清洗和预处理

 需求:删除一个列表中的空字符串和None值:

  1. def removeString(str):
  2. if str=='' or str is None:
  3. return False
  4. else:
  5. return True
  6. strings = ['mike', 'peoper','', 'boy', None, 'python', 'regular',None,'']
  7. print(strings)
  8. filtered=filter(removeString,strings)
  9. print(list(filtered))

3、复杂条件筛选

 需求:既能被2整除又能被4整除的元素:

  1. #提供过滤条件函数
  2. def ft(x):
  3. if x%2==0 and x%4==0:
  4. return True
  5. else:
  6. return False
  7. #随机生成不重复的数据
  8. data=random.sample(range(1,30),10)
  9. print(data)
  10. filtered=filter(ft,data)
  11. print(f'{data} 既能被2整除又能被4整除的元素:',end='')
  12. print(list(filtered))

4、与其他函数结合使用

需求:能被3整除的数进行过滤后再进行每个数据乘以2的映射显示

         也就是使用filter函数来筛选出一个列表中符合特定条件的元素,并使用map函数对筛选出的元素进行进一步处理。

  1. #提供过滤条件函数
  2. def ft(x):
  3. if x%3==0:
  4. return True
  5. else:
  6. return False
  7. def mp(x):
  8. return x*2
  9. #随机生成不重复的数据
  10. data=random.sample(range(1,21),10)
  11. print(data)
  12. ff=filter(ft,data)
  13. print(list(ff),type(ff))
  14. mapped=map(mp,filter(ft,data))
  15. # mapped=map(mp,ff)
  16. print(list(mapped))

四、总结

   filter()函数是Python中一个强大且灵活的工具,能够简化代码并提高开发效率。通过掌握filter()函数的各种用法,你可以更加高效地处理可迭代对象,实现自己的业务逻辑。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/578369
推荐阅读
相关标签
  

闽ICP备14008679号