A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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]








1 个回复

正序浏览
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马