filter()
函数用于返回一个迭代器,这里的元素通过函数进行过滤,它有助于测试序列中的每个元素是否为真。
**filter(function, iterable)** #Where iterable can be a list, string, tuple, dictionary , set etc
它以函数和可迭代为参数。
参数 | 描述 | 必需/可选 |
---|---|---|
功能 | 测试元素是否被接受的函数 | 需要 |
可迭代的 | 可迭代的可以是集合、列表、元组等... | 需要 |
| 投入 | 返回值 | | 可迭代(if 元素) | 迭代器(过滤列表) | | 可迭代(如果不是元素) | 错误的 |
filter()
方法的示例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
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]
filter()
方法在没有 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