首页 > 技术文章 > python内建函数map函数和filter函数的使用

eliwang 2021-04-21 21:57 原文

一、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]

     

推荐阅读