欢迎访问宙启技术站
智能推送

filter()函数的使用及实例演示

发布时间:2023-06-30 03:37:39

filter() 函数是 Python 内置的一个高阶函数,它用于筛选出符合特定条件的元素。filter() 函数接受两个参数, 个是一个函数(或者 None),第二个是一个可迭代对象(例如列表、元组、集合)。

filter() 函数会遍历可迭代对象中的每个元素,并将每个元素传递给 个参数函数中进行判断。如果函数返回 True,则该元素会被保留在结果中;如果函数返回 False,则该元素会被排除。最后,filter() 函数会返回一个迭代器,其中包含了所有符合条件的元素。

下面是 filter() 函数的基本语法:

filter(function, iterable)

其中,function 是用于判断的函数,iterable 是要进行筛选的可迭代对象。

接下来,我将通过几个例子来演示 filter() 函数的使用。

1、筛选出列表中的偶数:

假设我们有一个列表,我们想要筛选出其中的偶数。

num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

result = filter(lambda x: x % 2 == 0, num_list)
print(list(result))  # 输出:[2, 4, 6, 8, 10]

在这个例子中,我们使用了 lambda 函数来定义了判断条件。lambda 函数中的 x 代表列表中的每个元素,x % 2 == 0 表示判断 x 是否是偶数。filter() 函数会遍历 num_list 中的每个元素,并将符合条件的元素保留在结果中。

2、筛选出字符串中的大写字母:

假设我们有一个字符串列表,我们想要筛选出其中的大写字母。

str_list = ["Hello", "World", "Python", "FILTER"]

result = filter(lambda x: x.isupper(), str_list)
print(list(result))  # 输出:['FILTER']

在这个例子中,lambda 函数中的 x 代表列表中的每个元素,x.isupper() 表示判断 x 是否是大写字母。filter() 函数会遍历 str_list 中的每个元素,并将符合条件的元素保留在结果中。

3、筛选出字典中值大于 5 的键值对:

假设我们有一个字典,我们想要筛选出其中值大于 5 的键值对。

num_dict = {"a": 1, "b": 3, "c": 6, "d": 8}

result = filter(lambda x: x[1] > 5, num_dict.items())
print(dict(result))  # 输出:{'c': 6, 'd': 8}

在这个例子中,lambda 函数中的 x 代表字典中的每个键值对,x[1] > 5 表示判断键值对的值是否大于 5。filter() 函数会遍历 num_dict.items() 中的每个键值对,并将符合条件的键值对保留在结果中。

总结一下,filter() 函数是 Python 内置的函数,它用于筛选出符合特定条件的元素。通过传入一个函数(或者 None)和一个可迭代对象,filter() 函数会筛选出满足条件的元素,并返回一个迭代器。我们可以通过 lambda 函数来定义判断条件,也可以使用其他函数来进行判断。通过合理地使用 filter() 函数,我们可以简洁高效地对集合中的元素进行筛选和过滤。