Python filter()内置函数 --过滤序列中不符合条件的元素

filter() 函数接收两个参数,第一个参数是函数,第二个是序列。将序列的每一项作为参数传递给函数判断 TrueFalse ,其中返回为 True 的项构建一个新的迭代器

格式及参数

1
filter(function, iterable)

function :用于判断的函数

iterable:可以是一个序列、一个支持迭代的容器,或一个迭代器

参考资料

实例(3.8.8)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
str_ = 'abcd'                     # 字符串
list_ = ['a', 'b', 'c', 'd'] # 列表
tuple_ = ('a', 'b', 'c', 'd') # 元组
dict_ = {'a': 1, 'b': 2, 'c': 3} # 字典
set_ = {'a', 'b', 'c', 'd'} # 集合


def yu(num):
return num in ['a', 'c']


# function 不是 None 的时候为 (item for item in iterable if function(item))

iter_ = filter(yu, str_)
print(iter_)
print(type(iter_)) # 查看类型
print(list(iter_)) # 转换为列表


''' 输出
<filter object at 0x000001FBE9F05550>
<class 'filter'>
['a', 'c']
'''

# function 是 None 的时候为 (item for item in iterable if item)

iter_ = filter(None, str_)
print(iter_)
print(type(iter_))
print(list(iter_))

''' 输出
<filter object at 0x000001FBE9EA88B0>
<class 'filter'>
['a', 'b', 'c', 'd']
'''