python3中的filter()函数

339 阅读1分钟
python3中的filter()函数


filter() 函数是一个对于可迭代对象的过滤器,过滤掉不符合条件的元素,返回的是一个迭代器,如果要转换为列表,可以使用 list() 来转换。

该函数接收两个参数,第一个为函数的引用或者None,第二个为可迭代对象,可迭代对象中的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到迭代器中

下面看下fiter()的用法:

第一个参数为None:

[Python]
纯文本查看
复制代码
1
2
3
4
my_list = [1, '', 2, ' ', 3, 3]
new_list = list(filter(None, my_list)) # 注意:为None时,仅仅是过滤掉'', 而不是空的字符串' '
print(new_list)
# 结果为:[1, 2, ' ', 3, 3]

第二个参数为函数的引用:

[Python]
纯文本查看
复制代码
1
2
3
4
5
6
7
8
# 过滤出列表中的偶数
def is_even(num):
return num % 2 == 0
new_list = list(filter(is_even, list(range(1, 11))))
print(new_list)
# 结果为:[2, 4, 6, 8, 10]


更多技术资讯可关注:gzitcast