VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > python爬虫 >
  • Python 函数 | filter 函数详解

1. filter() 函数的介绍

1.1 功能

filter() 函数用于 过滤 可迭代对象中不符合条件的元素,返回由符合条件的元素组成的新的迭代器。filter() 函数把传入的函数依次作用于每个元素,然后根据返回值是 True 还是 False,来决定保留或丢弃该元素。

1.2 语法

filter(function or None, iterable) --> filter object
  • 1

参数说明:

(1) function:用于实现判断的函数,可以为 None。 (2) iterable:可迭代对象,如列表、range 对象等。 (3) 返回值:返回一个迭代器对象。

2. filter() 函数的应用

2.1 filter() 函数的基本应用

使用 filter() 函数过滤出 0~100 (不包括 100) 之间的所有奇数,代码如下:

def is_odd_number(number):  # 定义一个判断偶数的函数
    # 第一种
    # if number % 2 != 0:
    #     return True
    # return False
    # 第二种
    # return True if number % 2 != 0 else False  # 简写
    # 第三种
    return number % 2 != 0  # 简写


new_list = filter(is_odd_number, range(100))  # 使用filter()函数过滤出序列中的偶数
print(new_list)  # 返回一个迭代器对象
print(list(new_list))  # 使用list()函数将迭代器转换为列表程序运行结果如下:
在这里插入图片描述

2.2 筛选指定范围的数据

定义学生列表,对 2020 年高考理科成绩进行筛选,获得成绩在 600 分到 700 分之间的学生信息,代码如下:

def find(item):  # 创建函数
    score = int(item[1])
    return True if 600 <= score < 700 else False  # 判断条件


list1 = [
    ("小明", 600), ("小刚", 601), ("小雅", 524),
    ("小旭", 714), ("小章", 624), ("小白", 635),
    ("小赵", 480), ("小高", 580), ("小王", 541), ("小琪", 680)
]
new_list = filter(find, list1)  # 过滤序列中不符合条件的元素
list2 = list(new_list)  # 使用list()函数转换为列表
print(list2)  # 输出学生列表
print(f"600分以上: {len(list2)} 人"2.8 判断是否已经收藏某课程

在线课堂项目中,用户可以收藏喜欢的课程。如果之前已经收藏过该课程,则不用收藏。所以每次收藏之前,需要查询该课程是否已经收藏。代码如下:

class Course(object):
    """
    课程类
    """

    def __init__(self, course_id):
        self.course_id = course_id


# 判断是否已经收藏
def is_favorite(course_id):
    # 获取所有收藏的课程 id
    course = list(filter(lambda c: c.course_id == course_id, course_list))
    if len(course) > 0:
        return True
    return


if __name__ == '__main__':
    course_list = []
    for i in range(1, 10):
        # 实例化9个课程类,并传递课程id
        course_list.append(Course(i))

    print(is_favorite(7))  # True
    print(is_favorite(10))  # None

感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!


相关教程