zoukankan      html  css  js  c++  java
  • Python之内建函数Map,Filter和Reduce

    Python进阶


    map,filter, reduce是python常用的built-in function。 且常与lambda表达式一起用。
    其中:

    map###

    形式:map(function_to_apply, list_of_inputs) -> list
    作用:map的作用是将一个序列的元素(通常是list),作为function的参数传入,返回list结构的结果.
    用处:当我们想要将一个list的items 一个个按顺序传入一个function中,得到顺序的结果。可以考虑使用map。

    demo1

    一般的写法:

    items = [1, 2, 3, 4, 5]
    squared = []
    for i in items:
        squared.append(i**2)
    

    demo2:

    使用map的简洁写法:

    def squarefun(x):
        return x**2
    items=[1,2,3,4,5]
    squared = list(map(squarefun,items))
    

    demo3:

    使用lambda和map的最简洁写法:
    因为lambda就可以表达一个function。

    items = [1, 2, 3, 4, 5]
    squared = list(map(lambda x: x**2, items))
    

    result:

    [1,4,9,16,25]
    

    以上三个demo的作用是完全一样的,但是无疑demo3是最简洁的。

    reduce###

    形式:reduce(function, sequence) -> value
    作用:reduce的作用是将sequence的元素(通常是list),一个接一个的作为参数的传入function(只能是两个参数的运算)中进行运算,上一个结果作为下一次运算的一个参数,另一个参数从sequence返回一个最终的结果。

    demo4:

    result = reduce((lambda x, y: x + y), [1, 2, 3, 4, 5])
    
    #等同于
    result2 = ((((1+2)+3)+4)+5)
    
    # Output: 15
    

    filter###

    形式:filter(function or None,sequence) -> list,tuple or string
    作用:返回那些sequence中的那些item,使得function(item)为真。如果function为None,则直接返回为真的item,返回类型和sequence的类型一致。

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

    filter###


  • 相关阅读:
    O(1)时间复杂度实现入栈、出栈、获得栈中最小元素、获得栈中最大元素(转)
    北京网选赛第二题(最大仰望角度)
    最小圆覆盖(随机增量法&模拟退火法)
    模拟退火算法A Star not a Tree?(poj2420)
    模拟退火算法(run away poj1379)
    模拟退火算法(西安网选赛hdu5017)
    最小费用流判负环消圈算法(poj2175)
    中国邮递员问题(一)
    破坏行动问题
    进化树问题
  • 原文地址:https://www.cnblogs.com/bradleon/p/6109954.html
Copyright © 2011-2022 走看看