filter()函数的使用及实例演示
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() 函数,我们可以简洁高效地对集合中的元素进行筛选和过滤。
