zoukankan      html  css  js  c++  java
  • python——匿名函数

    什么是匿名函数?
      匿名函数就是没有名字的函数

    为什么要有匿名函数?
      因为随着程序代码的增多对于函数起名比较麻烦,并且有些函数只调用一次,那么这种情况,用匿名函数比较合适


    #如何定义一个匿名函数?

    一般函数:
    def test(x,y):
        return x + y
    res = test(1,2)
    print(res)
    >>> 3 匿名函数: res = (lambda x,y: x+y)(1,2) print(res)
    >>> 3

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

      lambda [arg1 [,arg2,.....argn]]:expression

      # lambda 参数列表:return [表达式] 变量
      # 由于lambda返回的是函数对象(构建的是一个函数对象),所以需要定义一个变量去接收

    实例一
      # 可写函数说明
        sum = lambda x, y: x + y;
      # 调用sum函数

    print ("相加后的值为 : ", sum( 10, 20 ))
    >>> 30
    print ("相加后的值为 : ", sum( 20, 20 )) 
    >>> 40

    实例二
      对字典排序

    infos = [
    {'name':'zhangsan','age':23},
    {'name':'lisi','age':24},
    {'name':'wangwu','age':12},
    {'name':'zhaoliu','age':33},
    {'name':'liuer','age':23}
    ]
    infos.sort(key=lambda x:x['age'])
    print(infos)
    >>> [{'name': 'wangwu', 'age': 12}, {'name': 'zhangsan', 'age': 23}, {'name': 'liuer', 'age': 23}, {'name': 'lisi', 'age': 24}, {'name': 'zhaoliu', 'age': 33}]

    实例三

    把lambda当一个变量

    def test(a,b,func):
        result = func(a,b)
        return result
    
    num = test(11,22,lambda x,y:x+y)
    print(num)
    >>> 33

    匿名函数优点
      • 使用Python写一些脚本时,使用lambda可以省去定义函数的过程,让代码更加精简。

      • 对于一些抽象的,不会被别的地方再重复使用的函数,有时候函数起个名字也是个难题,使用lambda不需要考虑命名的问题

      • 使用lambda在某些时候然后代码更容易理解

     

  • 相关阅读:
    redis复制
    redis发布订阅
    redis事务
    redis持久化
    redis.conf 常见配置介绍
    redis数据类型
    redis集群安装
    redis单机版安装
    eclipse下svn的使用
    算法五最长回文子串
  • 原文地址:https://www.cnblogs.com/twoo/p/11677666.html
Copyright © 2011-2022 走看看