Python内置函数,17-filter
官方文档
filter
(function, iterable)Construct an iterator from those elements of iterable for which function returns true. iterable may be either a sequence, a container which supports iteration, or an iterator. If function is
None
, the identity function is assumed, that is, all elements of iterable that are false are removed.Note that
filter(function, iterable)
is equivalent to the generator expression(item for item in iterable if function(item))
if function is notNone
and(item for item in iterable if item)
if function isNone
.See
itertools.filterfalse()
for the complementary function that returns elements of iterable for which function returns false.说明:1.filter用于过滤序列,过滤的方式则是采用传入的函数,去循环序列的元素调用,如果函数的结果为True则保留元素,否则将舍弃该元素
#普通方式
li = [11,22,33,44] def f1(x): return x > 22; ret = filter(f1,li) print(ret) #输出 <filter object at 0x104378a90> #通过便利获取对象 for item in ret: print(item) #输出 #33 #44
#通过lamdba函数实现上述功能ret = filter(lambda x: x > 22,li)
for item in ret:
print(item)
#输出
#33
#442.当fuction参数传入为None的时候,序列中的函数即使返回False,也会自动舍弃
#如果参入的函数为None,序列中的元素值即使为False,也会自动舍弃
def f2(x):
return True
c = ['','I',False,{},[],(),None] li = list(filter(f2,c)) print(li) #输出 #['', 'I', False, {}, [], (), None] li = list(filter(None,c)) #筛选函数为None时,自动舍弃序列中的False值,空字符串、False、[]、None、{}、() print(li) #输出 #['I']
- 上一篇 »Python3 的内置函数和闭包
- 下一篇 »Python3---内置函数---str,