filter() 函数用于返回一个迭代器,其中元素通过函数进行过滤。它有助于测试序列中的每个元素是否为真。
filter(function, iterable) #Where iterable can be a list, string, tuple, dictionary , set etc
它接受函数和可迭代对象作为参数。
| 参数 | 描述 | 必需/可选 |
|---|---|---|
| 函数 | 一个用于测试元素是否被接受的函数 | 必需 |
| 可迭代对象 | 可迭代对象可以是集合、列表、元组等... | 必需 |
| 输入 | 返回值 |
|---|---|
| 可迭代对象(如果元素存在) | 迭代器(过滤后的列表) |
| 可迭代对象(如果元素不存在) | False |
# 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
# 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]
# 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