深入分析Python中Lambda函数的用法

 更新时间:2022年12月22日 16:19:11   作者:alwaysrun  
lambda函数是Python中常用的内置函数,又称为匿名函数。和普通函数相比,它只有函数体,省略了def和return,使得结构看起来更精简。本文将详细说说Lambda函数的用法,需要的可以参考一下

lambda函数是一种小的匿名函数。

lambda语法

lambda函数:

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

  • 输入:可接受任意数量的参数,如lambda : print('hello')lambda x, y : x * y
  • 输出:expression计算得到的值;
  • 函数体:只能是单行的,有一个表达式;
  • 函数是匿名的(没有函数名);

示例1:lambda函数与普通函数类似,可直接引用(读取方式)外部变量

gAll = 10
if __name__ == '__main__':
    count = 2
    result = map(lambda x: x * count + gAll, range(10))
    print(list(result))
# [10, 12, 14, 16, 18, 20, 22, 24, 26, 28]

示例2:lambda函数调用(且表达式可为简单if语句)

result = []
for i in range(10):
    result.append((lambda x: x * 2 if x % 2 == 0 else x)(i))
print(result)
# [0, 1, 4, 3, 8, 5, 12, 7, 16, 9]

示例3:lambda延迟计算引起的问题(若不使用参数,所有打印都是9),为避免此问题,可把i以参数方式传递进去(类似示例2),或直接把i作为参数赋值一下(类似生成同名局部变量):

result = []
for i in range(10):
    # result.append((lambda: print("lambda:", i)))  # 全部是9
    result.append((lambda i=i: print("lambda:", i)))
for f in result:
    f()

高阶函数

lambda函数可作为函数的返回值,以增强函数功能;以幂乘为例:

def powMulti(n):
    return lambda x: x**n
if __name__ == '__main__':
    p = powMulti(2)
    for i in range(10):
        print(p(i))

内置高阶函数

lambda可方便应用于:

  • map(fun, iterable, ...):影射;用fun依次操作集合中元素,并返回对应结果的生成器;
  • reduce(fun, iterable[, initializer]):累积;用fun(两个参数)依次操作集元素(val = fun(val, ele);val初始值为initializer,若忽略则为集合中的第一个元素),返回最终结果;
  • sorted(iterable[, cmp[, key[, reverse]]]):排序;
  • filter(fun, iterable):过滤;
src = [random.randint(0, 100) for _ in range(10)]
print(src)
dest = sorted(src)
print(dest)
ret = functools.reduce(lambda x, y: x + y, range(10), 10)
print(ret)  # 55

到此这篇关于深入分析Python中Lambda函数的用法的文章就介绍到这了,更多相关Python Lambda内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pytorch点乘与叉乘示例讲解

    pytorch点乘与叉乘示例讲解

    今天小编就为大家分享一篇pytorch点乘与叉乘示例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 在PyCharm导航区中打开多个Project的关闭方法

    在PyCharm导航区中打开多个Project的关闭方法

    今天小编就为大家分享一篇在PyCharm导航区中打开多个Project的关闭方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 详解Python匿名函数(lambda函数)

    详解Python匿名函数(lambda函数)

    这篇文章主要介绍了Python匿名函数(lambda函数),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • python中数组和矩阵乘法及使用总结(推荐)

    python中数组和矩阵乘法及使用总结(推荐)

    这篇文章主要介绍了python中数组和矩阵乘法及使用总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Django后台admin的使用详解

    Django后台admin的使用详解

    这篇文章主要介绍了Django后台admin的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python基于多线程实现ping扫描功能示例

    Python基于多线程实现ping扫描功能示例

    这篇文章主要介绍了Python基于多线程实现ping扫描功能,结合实例形式分析了Python多线程与进程相关模块调用操作技巧,需要的朋友可以参考下
    2018-07-07
  • django 模型中的计算字段实例

    django 模型中的计算字段实例

    这篇文章主要介绍了django 模型中的计算字段实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Django media static外部访问Django中的图片设置教程

    Django media static外部访问Django中的图片设置教程

    这篇文章主要介绍了Django media static外部访问Django中的图片设置教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 使用Python监控屏幕变化并截图的方法详解

    使用Python监控屏幕变化并截图的方法详解

    这篇文章主要介绍了如何使用Python监控屏幕变化并截图,文中通过代码示例给大家讲解的非常详细,并对大家的学习工作有一定的帮助,需要的朋友可以参考下
    2024-04-04
  • python 实现一个反向单位矩阵示例

    python 实现一个反向单位矩阵示例

    今天小编就为大家分享一篇python 实现一个反向单位矩阵示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11

最新评论