Python filter()函数

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]