zoukankan      html  css  js  c++  java
  • Python lambda表达式

    Python lambda表达式

    一.lambda基本概念


    python中,lambda函数也叫匿名函数,即没有具体名称的函数,它允许快速定义单行函数,类似c语言的,可以用在任何需要函数的地方。用匿名函数有一个好处,因为函数没有名字,不必担心函数名冲突。匿名函数也是一个函数对象,也可以把**匿名函数赋值给一个变量,**在利用变量来调用该函数


    实例:

    f=lambda x:x*x
    f(5)=25
    

    同样,也可以把匿名函数作为返回值返回,比如:

    def f(x,y):
        
        return lambda x*x+x*y
    

    二.lambda与def区别

    1. def创建的方法是有名称的,而lambda没有
    2. lambda会返回一个函数对象,但这个对象不会赋给一个标识符,而def则会把函数对象赋值给一个变量(函数名)
    3. lambda只是一个表达式,而def是一个语句
    4. lambda表达式":"后面只能有一个表达式,def则可以有多个

    **

    三.例子说明


    python中有一个定义好的全局函数方便调用:filter,map,functools.reduce

    >>> foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
    >>> filter(lambda x: x % 3 == 0, foo)
    <filter object at 0x0000025834193E08>
    >>> list(filter(lambda x: x % 3 == 0, foo))
    [18, 9, 24, 12, 27]
    
    >>> list(map(lambda x:x%2+10,foo))
    [10, 10, 11, 10, 11, 10, 10, 10, 11]
    
    >>> functools.reduce(lambda x,y:x+y,foo)
    139
    

    定义某种排序规则
    将列表[1, 2, 3, 4, 5, 6, 7, 8, 9]按照元素与5距离从小到大进行排序

    >>> sorted([1, 2, 3, 4, 5, 6, 7, 8, 9], key=lambda x: abs(5-x))
    [5, 4, 6, 3, 7, 2, 8, 1, 9]
    
  • 相关阅读:
    1203 forms组件
    1128 聚合查询 orm字段及属性
    1127 模型层orm表操作
    1126 视图层与模板层
    1122 django中orm操作
    1121 Django操作
    1125 视图层
    搭建并行开发环境MPICH2
    Linpack之HPL测试 (HPL Benchmark)
    安装NetCDF及HDF5
  • 原文地址:https://www.cnblogs.com/LQ6H/p/12940519.html
Copyright © 2011-2022 走看看