filter() 函数用于过滤可迭代对象(例如列表)中的元素,只保留满足特定条件的元素。filter() 函数接受两个参数:一个是用于筛选的函数,另一个是要筛选的可迭代对象。
Python 过滤器() 语法
Python中的 filter() 方法具有以下语法:
filter(function, iterable)
- function:是一个用于筛选的函数,可以是普通函数或 lambda 函数。
- iterable:是要筛选的可迭代对象,例如列表、元组等。
Python 过滤器函数示例
让我们看一些 Python 中的 filter() 函数的示例。
具有自定义函数的 Python 过滤函数
在这个例子中,我们使用过滤函数和自定义函数“ fun() ”来从Python列表中过滤掉元音。
# 定义一个用于筛选元音字母的函数
def fun(variable):
vowels = ['a', 'e', 'i', 'o', 'u']
if (variable in vowels):
return True
else:
return False
# 字母序列
sequence = ['g', 'e', 'e', 'j', 'k', 's', 'p', 'r']
# 使用filter函数进行筛选
filtered = filter(fun, sequence)
print('筛选出的字母是:')
for s in filtered:
print(s)
输出:
筛选出的字母是:
e
e
Python 中使用 Lambda 的过滤函数
Python filter() 函数通常与Lambda 函数一起使用。在此示例中,我们使用 lambda 函数从列表中过滤掉奇数和偶数。
# 一个包含偶数和奇数的列表
seq = [0, 1, 2, 3, 5, 8, 13]
# result 包含列表中的奇数
result = filter(lambda x: x % 2 != 0, seq)
print(list(result))
# result 包含列表中的偶数
result = filter(lambda x: x % 2 == 0, seq)
print(list(result))
输出:
[1, 3, 5, 13]
[0, 2, 8]
使用 Lambda 和自定义函数在 Python 中过滤函数
在此程序中,我们将使用自定义函数“ is_multiple_of_3() ”以及 lambda 函数。filter() 函数用于将此函数应用于数字列表的每个元素,而 lambda 函数用于在应用条件之前迭代列表的每个元素。这样,我们可以在应用条件之前对每个元素执行附加操作。
# 定义一个函数来检查一个数字是否是3的倍数
def is_multiple_of_3(num):
return num % 3 == 0
# 创建一个数字列表进行筛选
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 使用filter和lambda函数来筛选数字列表,只保留3的倍数
result = list(filter(lambda x: is_multiple_of_3(x), numbers))
# 打印结果
print(result)
输出:
[3,6,9]