【Python】内置函数filter()
语法:
1 |
filter(function, iterable) |
将iterable值逐一带入function,返回迭代器
例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
## 返回list中的所有偶数 >>> L=[1,2,3,4,5,6,7,8,9] >>> def foo(x): ... return (x%2 == 0) ... >>> list(filter(foo,L)) [2, 4, 6, 8] >>> ## 结合 lambda 使用 >>> L=[1,2,3,4,5,6,7,8,9] >>> list(filter(lambda x: x%2==0, L)) [2, 4, 6, 8] >>> |
注:
1:filter内置函数后,返回的是迭代器,需要使用list函数转换下,否则如果不使用list的话,那么显示效果如下:
1 2 3 4 5 6 7 |
>>> L=[1,2,3,4,5,6,7,8,9] >>> filter(lambda x: x%2==0, L) <filter object at 0x7f9def66e828> >>> >>> list(filter(lambda x: x%2==0, L)) [2, 4, 6, 8] >>> |
2:如果filter(function, iterable)中,function为None,则直接返回iterable,如下:
1 2 3 4 |
>>> L=[1,2,3,4,5,6,7,8,9] >>> list(filter(None,L)) [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> |