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###


  • 相关阅读:
    跳台阶问题
    腾讯,百度,网易游戏,华为笔面经验
    进程、线程、应用程序之间的关系
    const用法小结
    vc快捷键
    文献阅读以及如何管理
    数据类型转换
    vc Debug Release
    如何阅读文献
    如何提高表达能力
  • 原文地址:https://www.cnblogs.com/bradleon/p/6109954.html
Copyright © 2011-2022 走看看