Python filter 函数

ChatGPT 3.5 国内中文镜像站免费使用啦

基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门


一.Python filter 函数简介

      filter 函数主要用来筛选数据,过滤掉不符合条件的元素,并返回一个迭代器对象,如果要转换为列表 list 或者元祖 tuple ,可以使用内置函数 list 或者内置函数 tuple 来转换;

      filter 函数接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中,就好比是用筛子,筛选指定的元素;

'''
参数:
    function – 函数名;
    iterable – 序列或者可迭代对象;

 返回值:通过 function 过滤后,将返回 True 的元素保存在迭代器对象中,最后返回这个迭代器对象(Python2.0x 版本是直接返回列表 list );
'''

filter(function, iterable)

二.Python filter 函数使用


1.filter函数简单使用

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python filter 函数.py
@Time:2021/04/30 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
 
"""


def check(i):
    # 如果是偶数返回 True 否则返回False
    return True if i%2 == 0 else False

if __name__ == "__main__":

    list1 =[1,2,3,4,5,6]
    result = filter(check,list1)
    print(result)
    print(type(result))

    # 将返回的迭代器转为列表list或者元组
    print(list(result))
    print(type(list(result)))

'''
输出结果:

<filter object at 0x0000015127BA7EB8>
<class 'filter'>
[2, 4, 6]
<class 'list'>

'''

2.filter函数配合匿名函数 Lambda 使用

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python filter 函数.py
@Time:2021/04/30 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
 
"""


def check_score(score):
    if score > 60:
        return  True
    else:
        return False

if __name__ == "__main__":

    # 成绩列表
    student_score = {"zhangsan":98,"lisi":58,"wangwu":67,"laowang":99,"xiaoxia":57}

    # 筛选成绩大于60的成绩列表
    result = filter(lambda score:score > 60,student_score.values())
    # 与上面一行代码等价
    # result = filter(check_score, student_score.values())

    print(result)
    print(type(result))

    # 将返回的迭代器转为列表list或者元组
    print(list(result))
    print(type(list(result)))


'''
输出结果:

<filter object at 0x000001B761F88FD0>
<class 'filter'>
[98, 67, 99]
<class 'list'>
'''

      注意:filter 函数返回的是一个迭代器对象,往往在使用时需要先将其转换为列表list 或者元祖 tuple 之后再操作;

      Python filter 函数其实和内置函数 map 使用方法类似,map 函数也是将迭代器或者序列中的每一个元素映射到指定的函数中,操作完成之后再返回修改后的迭代器对象;


三.猜你喜欢

  1. Python for循环
  2. Python 字符串
  3. Python 列表list
  4. Python 元组tuple
  5. Python 字典 dict
  6. Python 条件推导式
  7. Python 列表推导式
  8. Python 字典推导式
  9. Python 函数声明和调用
  10. Python 不定长参数 *argc/**kargcs
  11. Python 匿名函数 lambda
  12. Python return 逻辑判断表达式
  13. Python 字符串/列表/元组/字典之间的相互转换
  14. Python 局部变量和全局变量
  15. Python type 函数和 isinstance 函数区别
  16. Python is 和 == 区别
  17. Python 可变数据类型和不可变数据类型
  18. Python 浅拷贝和深拷贝

ChatGPT 3.5 国内中文镜像站免费使用啦
© 版权声明
THE END
喜欢就支持一下吧
点赞2 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容