zoukankan      html  css  js  c++  java
  • Python之匿名函数

    1、定义

      匿名函数顾名思义就是指:是指一类无需定义标识符(函数名)的函数或子程序。

    2、基本语法

      lambda 参数:表达式(返回值) = def func(参数): 表达式(return 值)

    3、应用示例

    #例1:求列表中所有数的平方
    lis1 = [1,2,3,4,5]
    
    #用函数实现求平方
    def getSquare(x):
        return x*x
    for i in lis1:
        print(getSquare(i), end=' ')
    #输出结果
    1 4 9 16 25
    
    #用lambda实现
    f_lambda = lambda x:x*x
    for i in lis1:
        print(f_lambda(i), end=' ')
    #输出结果
    1 4 9 16 25
    

    4、在内置函数 max() 求最大值,min()求最小值, map() 映射, reduce 合并, filter() 过滤 中经常会用到lambda

    示例(map):

    #例1 用map把列表中所有的名称全部加上e补充完整,比如'hom->home'
    strlis = ['her','hom','cak','peopl']
    for i in map(lambda x:x+'e',strlis):
        print(i, end=' ')
    #输出结果
    here home cake people
    
    #例2 求两个列表中对应元素进行相加后的和 如lis1[0]+lis2[0]
    lis1 = [1,2,3,4]
    lis2 = [4,5,6,7,9]
    for i in map(lambda x,y:x+y, lis1,lis2):
        print(i, end=' ')
    #输出结果
    5 7 9 11
    #注:map只以长度最小的迭代对象为基准  

    示例(filter):

    #例1 求列表中元素长度大于>2的元素
    strlis = ['a','bb','ccc','dddd','eeeee']
    for i in filter(lambda x:len(x)>2, strlis):
        print(i, end=' ')
    #输出结果    
    ccc dddd eeeee
    
    #例2 求列表中所有value>=100的键值对
    diclis = [ {'k':'b','v':98}, {'k':'c','v':99}, {'k':'d','v':100}, {'k':'e','v':101}]
    for i in filter(lambda x:x['v']>=100, diclis):
        print(i, end=' ')
    #输出结果
    {'k': 'd', 'v': 100} {'k': 'e', 'v': 101}  

    总结:

      1、匿名函数即没有绑定名字的函数,没有绑定名字,意味着只能用一次就会被回收。

      2、匿名函数的应用场景就是:某个功能只用一次就结束了。

  • 相关阅读:
    RobotFramework下的http接口自动化Get关键字的使用
    通过添加filter过滤器 彻底解决ajax 跨域问题
    TestLink和RedMine的集成
    SonarQube和Maven的集成
    RobotFramework下的http接口自动化Create Http Context关键字的使用
    正负数的源码 反码 补码 转
    SSM的,日常错误
    SSM的 日常错误 之 mybatis
    Eclipse无法启动报An internal error occurred during: "reload maven project". java.lang.NullPointerException
    错误异常
  • 原文地址:https://www.cnblogs.com/lioushell/p/8433474.html
Copyright © 2011-2022 走看看