Python中的filter函数:使用方式和实例
发布时间:2023-06-12 22:03:45
Python提供了强大的filter函数,可以对列表、元组、字典、集合等可迭代对象进行过滤。filter函数的基本语法如下:
filter(function, iterable)
其中,function是一个函数,可用于对可迭代对象的各个元素进行判断,返回布尔值。如果function返回True,则该元素会被保留下来,否则被过滤掉。iterable是要过滤的可迭代对象。
以下是几个使用filter函数的例子。
例子1:过滤偶数
def is_even(num):
return num % 2 == 0
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(is_even, numbers))
print(even_numbers) # [2, 4, 6, 8, 10]
以上代码中,is_even函数用于判断一个数字是否为偶数,通过filter函数对numbers列表进行过滤,将其中的偶数提取出来。
例子2:过滤长度为3的字符串
words = ["cat", "dog", "elephant", "panda", "lion"] three_letter_words = list(filter(lambda x: len(x) == 3, words)) print(three_letter_words) # ['cat', 'dog']
以上代码中,使用lambda表达式对每个字符串的长度进行判断,在filter函数中返回True的字符串被提取出来。
例子3:过滤字典中关键字为value的键值对
def filter_dict(my_dict, value):
return dict(filter(lambda x: x[1] != value, my_dict.items()))
my_dict = {"a": 1, "b": 2, "c": 1, "d": 3}
new_dict = filter_dict(my_dict, 1)
print(new_dict) # {'b': 2, 'd': 3}
以上代码中,定义了一个函数filter_dict,该函数用于过滤字典中关键字为value的键值对,并返回新的字典。在函数中,使用items方法将字典转换为元组列表,然后使用lambda表达式进行过滤。
总之,filter函数是Python中非常实用的函数之一,可以通过自定义函数或lambda表达式快速对可迭代对象进行过滤,十分方便。
