下面我将为大家详细介绍Python中filter函数的使用方法。
什么是filter函数?
在Python中,filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个新的序列。可以使用 lambda 表达式或函数的形式对序列进行过滤。返回的结果为一个 filter 对象,可以使用 list() 来转换为列表。
filter函数的语法
filter(function, iterable)
参数:
1. function:用于过滤的函数,可以是lambda函数或普通函数。
2. iterable:一个序列或可迭代的对象。
filter函数的使用示例
下面将通过两个代码示例来介绍filter函数的使用。
示例一:
# 通过filter函数过滤掉列表中的奇数元素
number_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 使用 lambda 表达式过滤
new_number_list = list(filter(lambda x: x % 2 == 0, number_list))
# 使用普通函数过滤
def is_even(num):
if num % 2 == 0:
return True
else:
return False
new_number_list_2 = list(filter(is_even, number_list))
print(new_number_list) # [2, 4, 6, 8]
print(new_number_list_2) # [2, 4, 6, 8]
在此示例中,通过使用filter()函数过滤出列表number_list中的偶数元素。可以看到,这里既使用了lambda表达式,也使用了普通函数的方式对列表进行了过滤,并将结果转换为列表。
示例二:
# 通过filter函数过滤掉字典中value为假值的键值对
d = {'a': '', 'b': 'hello', 'c': None, 'd': 0}
# 使用 lambda 表达式过滤
new_dict = dict(filter(lambda x: x[1], d.items()))
# 使用普通函数过滤
def is_valid_value(item):
key, value = item
if value:
return True
else:
return False
new_dict_2 = dict(filter(is_valid_value, d.items()))
print(new_dict) # {'b': 'hello'}
print(new_dict_2) # {'b': 'hello'}
在上面示例中,通过使用filter函数过滤掉字典中value为假值的键值对。同样地,这里既使用了lambda表达式,也使用了普通函数的方式实现了对字典的过滤,并将结果转换为字典。
到这里,介绍完了Python中filter函数的使用方法,希望对大家有所帮助。