Filter()函数在Python中的使用方法
发布时间:2023-07-03 04:29:15
Filter()函数是Python中的一个内置函数,用于筛选出符合指定条件的元素,返回一个迭代器对象。
filter(function, iterable):函数接受两个参数, 个参数是一个函数(function),第二个参数是一个可迭代对象(iterable)。该函数对可迭代对象中的每个元素调用function函数,然后根据返回值决定是否保留该元素。
下面是filter()函数的使用方法和示例:
1. 使用lambda表达式
可以使用lambda表达式作为filter()函数的 个参数,来定义筛选条件。例如,筛选出列表中的偶数:
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_nums = filter(lambda x: x % 2 == 0, nums) print(list(even_nums)) # 输出:[2, 4, 6, 8, 10]
lambda表达式中的x表示迭代过程中的每个元素,x % 2 == 0表示筛选条件为x能够被2整除。
2. 使用自定义函数
可以使用自定义函数作为filter()函数的 个参数,来定义筛选条件。例如,筛选出字符串列表中长度大于等于5的字符串:
def filter_func(s):
return len(s) >= 5
strings = ['apple', 'banana', 'orange', 'grape', 'watermelon']
filtered_strings = filter(filter_func, strings)
print(list(filtered_strings))
# 输出:['banana', 'orange', 'watermelon']
在自定义函数中,可以定义任意的筛选条件,返回值为True表示保留该元素,返回值为False表示丢弃该元素。
3. 过滤None和空字符串
filter()函数可以用于过滤掉列表中的None和空字符串。例如:
values = [1, None, '', 'hello', 'world', None, ''] filtered_values = filter(None, values) print(list(filtered_values)) # 输出:[1, 'hello', 'world']
这里传递的 个参数是None,它表示使用默认筛选条件,即过滤掉所有的None和空字符串。
需要注意的是,filter()函数返回的是一个迭代器对象,如果要获取筛选后的结果,需要使用list()将其转换为列表。
这是filter()函数在Python中的使用方法。通过定义筛选条件的函数或lambda表达式,可以方便地从可迭代对象中筛选出符合条件的元素。
