黑马程序员技术交流社区

标题: 【广州python】python3中的filter()函数 [打印本页]

作者: xianqiuhua    时间: 2018-11-29 15:45
标题: 【广州python】python3中的filter()函数
本帖最后由 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]









作者: 不二晨    时间: 2018-12-5 16:46





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2