zoukankan      html  css  js  c++  java
  • (11)lambda表达式用法

    * lambda 简述
        lambda只是一个表达式,函数体比def简单很多
        lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
        lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义
        lambda可以有多个参数列表
        lambda表达式也叫匿名函数
       
    * 简单例子
       result = lambda x:x+3
       求一个数加3的结果
      
       fun = lambda x,y:x*y
       求两个数相乘
      
       g = lambda x : x**2
       print g(4)
       数的平方
      
    * 和其它函数组合
        map() 将序列中的元素通过处理函数处理后返回一个新的列表
            li = [1, 2, 3, 4, 5]
            # 序列中的每个元素加1
            map(lambda x: x+1, li) # [2,3,4,5,6]
           
        filter() 将序列中的元素通过函数过滤后返回一个新的列表
            # 返回序列中的偶数
            filter(lambda x: x % 2 == 0, li) # [2, 4]
           
        reduce() 将序列中的元素通过一个二元函数处理返回一个结果
            # 返回所有元素相乘的结果
            reduce(lambda x, y: x * y, li) # 1*2*3*4*5 = 120 
           
        sorted() 结合lambda对列表进行排序
        sorted用法:
            sorted(iterable, cmp=None, key=None, reverse=False)--> new sorted list terable:是可迭代类型;
            cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;
            key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项;
            reverse:排序规则. reverse = True 或者 reverse = False,有默认值。
            * 返回值:是一个经过排序的可迭代类型,与iterable一样。
        sorted(data, key=lambda d: d['sort_time'], reverse=True)   

  • 相关阅读:
    HDU 5791 Two (DP)
    POJ 1088 滑雪 (DPor记忆化搜索)
    LightOJ 1011
    POJ 1787 Charlie's Change (多重背包 带结果组成)
    HDU 5550 Game Rooms (ccpc2015 K)(dp)
    HDU 5542 The Battle of Chibi (ccpc 南阳 C)(DP 树状数组 离散化)
    HDU 5543 Pick The Sticks (01背包)
    HDU 5546 Ancient Go (ccpc2015南阳G)
    NB-IoT的DRX、eDRX、PSM三个模式 (转载,描述的简单易懂)
    MQTT 嵌入式端通讯协议解析(转)
  • 原文地址:https://www.cnblogs.com/toby2chen/p/5201200.html
Copyright © 2011-2022 走看看