python内建函数map函数和filter函数的使用
一、map函数
-
map(func, *iterables) --> map object
-
map函数会根据提供的函数对指定序列做映射,并返回一个迭代器,结果取决于最短的这个序列
-
序列的个数,取决于function需要几个参数
-
示例
In [1]: list(map(lambda x:x**2,[1,2,3])) #函数需要一个参数,一个序列 Out[1]: [1, 4, 9] In [2]: list(map(lambda x,y:x+2*y,[1,2,3],[3,4,5])) #函数需要两个参数,两个序列 Out[2]: [7, 10, 13] In [3]: list(map(lambda x,y:x+2*y,[1,2,3],[3,4,5,6,7])) #当最短的序列调用结束时停止,所以结果和上面这个一样 Out[3]: [7, 10, 13]
二、filter函数
-
filter(function or None, iterable) --> filter object
-
filter函数会对指定序列执行过滤操作,对序列中的每个元素调用function函数,并以迭代器的形式返回结果为True的元素。
-
function:接受一个参数,返回布尔值True或False
-
如果function函数为None,则序列每个元素的返回结果均为True,即不做过滤
-
示例:
In [1]: list(filter(lambda x:x>4,(1,2,3,5,8))) #过滤序列中大于4的元素 Out[1]: [5, 8] In [2]: list(filter(None,(1,2,3,5,8))) #function为None,不做任何过滤 Out[2]: [1, 2, 3, 5, 8]