python filter()函数

filter()函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。该接收两个参数,第一个为函数,第二个为可迭代对象,可迭代对象的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

l1 = [1, 2, 3, 4, 5]
print(filter(lambda x: x % 2 == 0, l1))
'<filter object at 0x000002049EC4B190>'
# 返回列表中的偶数
print(list(filter(lambda x: x % 2 == 0, l1)))
'[2, 4]'
# 返回字符串中指定的字符及位置
s1 = 'abcasdasd;asd'
print(list(filter(lambda x: x[1] in ['a', 'b'], enumerate(s1))))
"[(0, 'a'), (1, 'b'), (3, 'a'), (6, 'a'), (10, 'a')]"