本帖最后由 xianqiuhua 于 2018-11-29 15:50 编辑
python3中的filter()函数
filter() 函数是一个对于可迭代对象的过滤器,过滤掉不符合条件的元素,返回的是一个迭代器,如果要转换为列表,可以使用 list() 来转换。
该函数接收两个参数,第一个为函数的引用或者None,第二个为可迭代对象,可迭代对象中的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到迭代器中
下面看下fiter()的用法:
第一个参数为None:
[Python] 纯文本查看 复制代码 my_list = [1, '', 2, ' ', 3, 3]
new_list = list(filter(None, my_list)) # 注意:为None时,仅仅是过滤掉'', 而不是空的字符串' '
print(new_list)
# 结果为:[1, 2, ' ', 3, 3]
第二个参数为函数的引用:
[Python] 纯文本查看 复制代码 # 过滤出列表中的偶数
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]
|