• python —匿名函数(lambda)


    匿名函数

    一、定义

    用lambda关键词能创建小型匿名函数,这种函数能得名与省略了用def声明函数的标准步骤。

    lambda函数语法只包含一个句型,如下

    lambda[arg1[arg2,arg3.........argn]]:expression      简洁,后只能接表达式 不能接复杂语法

    def声明函数与匿名函数
    >>> def  test(a,b):
        return a+b
    
    >>> test(1,23)
    24
    >>> func = lambda x,y:x+y
    >>> func(1,23)
    24
    >>> 

    二、使用:

    作为普通函数的补充

    1.动态编程中:取决于func的要求(python是动态语言)

    >>> def   test1(a,b,func):
        result = func(a,b)
        return result>>> test1(21,3,lambda x,y:x*y)
    >>> 63

    1,test1中21传入a ,3传入b, lambda x ,y:x*y 传给了func

    2,把  a传给了x,把 b 传给了y

    3,表达式执行结果返回给result

     2.匿名函数在列表排序中的使用(匿名函数功能:返回列表中每个元素(字典)的“name”或者“age”对应的值进行比较排序)

     1 >>> list1=[{"name":"zs","age":15},{"name":"li","age":25},{"name":"wu","age":19}]
     2 >>> list1.sort()
     3 Traceback (most recent call last):
     4   File "<pyshell#1>", line 1, in <module>
     5     list1.sort()
     6 TypeError: '<' not supported between instances of 'dict' and 'dict'
     7 >>> list1.sort(key = lambda x:x['name'])
     8 >>> list1
     9 [{'name': 'li', 'age': 25}, {'name': 'wu', 'age': 19}, {'name': 'zs', 'age': 15}]
    10 >>> list1.sort(key = lambda x:x['age'])
    11 >>> list1
    12 [{'name': 'zs', 'age': 15}, {'name': 'wu', 'age': 19}, {'name': 'li', 'age': 25}]
    13 
    14 >>> help(list.sort)
    15 Help on method_descriptor:
    16 
    17 sort(self, /, *, key=None, reverse=False)
    18     Stable sort *IN PLACE*.
    19 
    20 >>> #这里的key指的是sort函数内部的key,不传入值时,默认为列表内元素,即此时字典传入x中,再运算结果,为对应年龄或者名称首字母排序

  • 相关阅读:
    The Dos and Don'ts for Ceph for OpenStack
    fio测试ceph的filestore
    yum安装Ceph指定Jewel版本
    处理stale的pg
    预估Ceph集群恢复时间
    python编码(二)
    python编码(一)
    删除重复的feature vba VS 删除重复的feature python
    新浪微博mid和url的互算
    用python实现各种排序算法
  • 原文地址:https://www.cnblogs.com/yescarf/p/12163973.html
Copyright © 2020-2023  润新知