美文网首页
Python进阶 Map,Filter 和 Reduce

Python进阶 Map,Filter 和 Reduce

作者: FicowShen | 来源:发表于2018-06-12 16:54 被阅读3次

    map

    Map会将一个函数映射到一个输入列表的所有元素上。

    items = [1, 2, 3, 4, 5]
    squared = []
    for i in items:
        squared.append(i**2)
    
    
    items = [1, 2, 3, 4, 5]
    squared = list(map(lambda x: x**2, items))
    
    def multiply(x):
            return (x*x)
    def add(x):
            return (x+x)
    
    funcs = [multiply, add]
    for i in range(5):
        value = map(lambda x: x(i), funcs)
        print(list(value))
    
    # Output:
    # [0, 0]
    # [1, 2]
    # [4, 4]
    # [9, 6]
    # [16, 8]
    

    filter

    过滤列表中的元素,并且返回一个由所有符合要求的元素所构成的列表,符合要求即函数映射到该元素时返回值为True.

    number_list = range(-5, 5)
    less_than_zero = filter(lambda x: x < 0, number_list)
    print(list(less_than_zero))  
    
    # Output: [-5, -4, -3, -2, -1]
    

    reduce

    当需要对一个列表进行一些计算并返回结果时,Reduce 是个非常有用的函数。举个例子,当你需要计算一个整数列表的乘积时。

    from functools import reduce
    product = reduce( (lambda x, y: x * y), [1, 2, 3, 4] )
    
    # Output: 24
    

    相关文章

      网友评论

          本文标题:Python进阶 Map,Filter 和 Reduce

          本文链接:https://www.haomeiwen.com/subject/jrlreftx.html