Tutorial Study Image

Python filter()

filter() 函数用于返回一个迭代器,其中元素通过函数进行过滤。它有助于测试序列中的每个元素是否为真。


filter(function, iterable) #Where iterable can be a list, string, tuple, dictionary , set etc 

filter() 参数

它接受函数和可迭代对象作为参数。

参数 描述 必需/可选
函数 一个用于测试元素是否被接受的函数 必需
可迭代对象 可迭代对象可以是集合、列表、元组等... 必需

filter() 返回值
 

输入 返回值
可迭代对象(如果元素存在) 迭代器(过滤后的列表)
可迭代对象(如果元素不存在) False

Python 中 filter() 方法的示例

示例 1:filter() 如何作用于可迭代列表?


# list of letters
letters = ['a', 'b', 'd', 'e', 'i', 'j', 'o']

# function that filters vowels
def filter_vowels(letter):
    vowels = ['a', 'e', 'i', 'o', 'u']

    if(letter in vowels):
        return True
    else:
        return False

filtered_vowels = filter(filter_vowels, letters)

print('The filtered vowels are:')
for vowel in filtered_vowels:
    print(vowel)
 

输出

The filtered vowels are:
a
e
i
o

示例 2:filter() 如何使用预定义函数?


# Returns the elements which are multiples of 5
def multipleOf5(n):
  if(n % 5 == 0):
    return n
myList = [10, 25, 17, 9, 30, -5]
myList2 = list(filter(multipleOf5, myList))
print(myList2)
 

输出

[10, 25, 30, -5]

示例 3:filter() 方法在没有过滤函数的情况下如何工作?


# random list
random_list = [1, 'a', 0, False, True, '0']

filtered_list = filter(None, random_list)

print('The filtered elements are:')
for element in filtered_list:
    print(element)
 

输出

The filtered elements are:
1
a
True
0