filter()
函数用于过滤序列,去除掉不符合条件的元素,返回由符合条件元素组成的新列表。
用法:filter(function, iterable)
def is_odd(n):
return n % 2 == 1
newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(newlist)
[1, 3, 5, 7, 9]
使用lambda()
:
>>> numbers = range(-5,5)
>>> numbers
[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]
>>> filter(lambda x: x>0, numbers)
[1, 2, 3, 4]
# 使用列表解析的同等写法
>>> [x for x in numbers if x>0]
[1, 2, 3, 4]
作用于字符:
>>> filter(lambda c: c!='i', 'qiwsir')
'qwsr'