zoukankan      html  css  js  c++  java
  • python 函数式编程之lambda( ), map( ), reduce( ), filter( )

    lambda( ), map( ), reduce( ), filter( )

    1. lambda( )主要用于“行内函数”:

    1 f = lambda x : x + 2 #定义函数f(x)=x+2
    2 g = lambda x,y: x+y #定义函数f(x,y)=x+y

    2. 列表解析:可以简化代码

    1 a = [1,2,3]
    2 b =[]
    3 for i in a:
    4     b.append(i+2)
    5     
    6 #使用列表解析完成上述功能:
    7 a = [1,2,3]
    8 b = [i+2 for i in a]

    3. map( ): 以下例子分别完成f(x)=x+2,  f(x,y)=x*x*x+y

    1 #使用map完成上述功能:
    2 a = [1,2,3]
    3 #c = map(function, sequence)
    4 c = map(lambda x:x+2, a)
    1 a = [1,2,3]
    2 b = [1,1,1]
    3 #c = map(function, sequence)
    4 #map()函数可接受多参数
    5 c = map(lambda x,y: x**3 +y , a,b)

    “列表解析”本质上还是for命令,python的for命令效率并不高。map( )函数实现了相同的功能,并且效率更高。

    4. reduce( ):

    map( )函数是逐一遍历, reduce( )函数是递归遍历

    1 # 完成一个求n以内阶乘的函数:1*2*3*4*5* ……n
    2 a = lambda x,y : x*y
    3 #reduce(function, sequence)
    4 b = reduce(a, range(1,n+1))

    5. filter( ): 过滤

    1 #filter(function_or_None, sequence)
    2 a = filter(lambda x: x>5 and x<8, range(10))
    3 #列表解析式完成:
    4 b = [x for x in range(10) if x>5 and x<8]
  • 相关阅读:
    mock数据
    关于适配各种浏览器的图片预览。
    闭包
    兼容性 适配
    递归 使用callee
    webservice的model层命名空间不同的问题
    删除右键菜单中的Git
    windows server core 设置shell 及切换
    设置共享用户名密码
    Windows Remote Shell(WinRM)使用介绍
  • 原文地址:https://www.cnblogs.com/xiyuan2016/p/9029831.html
Copyright © 2011-2022 走看看