python的lambda表达式详细讲解

python的lambda表达式详细讲解前言:Lambda表达式是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象,是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包。缺点:只有一个运算式,不适用于复杂的计算。不够直观,难于理解,增加了维护成本python的lambda可以和java中的stream流一样,可以将lambda函数作为参数传递给其他函数比如说结合map、filter、sorted、reduce等一些Python内置函数使用接下来我们用代码来演示一下lambda(1)简单用法

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

前言:

作者:神的孩子在歌唱

大家好,我叫智

Lambda 表达式是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象,是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包。

  1. 而且Lambda表达式非常好用,可以让代码简单、简洁

请添加图片描述

图片来源:https://zhidao.baidu.com/question/527678293777168765.html?fr=iks&word=python%D6%D0%B5%C4lambada%B0%D9%B6%C8&ie=gbk&dyTabStr=MCw1LDEsNiw0LDMsNyw4LDIsOQ==

  1. 缺点:只有一个运算式,不适用于复杂的计算。不够直观,难于理解,增加了维护成本

  2. python的lambda可以和java中的stream流一样,可以将lambda函数作为参数传递给其他函数比如说结合map、filter、sorted、reduce等一些Python内置函数使用

  3. 接下来我们用代码来演示一下lambda

    (1)简单用法

    # 求两数之和
    sum = lambda a, b: a + b
    print(sum(1,2))
    

请添加图片描述

(2)将lambda作为函数返回

# 作为函数
def sum(a):
    return lambda b:a + b
a = sum(3)
print(a(4))

请添加图片描述

解释:这里定义了一个sum函数,返回了一个lambda表达式。其中lambda表达式获取到了上层def作用域的变量名a的值。x是sum函数的返回值,x(4),即是调用了sum返回的lambda表达式

​ (3)在处理一个可迭代对象如列表,字典等时,可以用map(lambda, x) 代替 for…in…循环

# 将列表中的每个数翻倍
lis = [2,5,6]
print(list(map(lambda x:x*x, lis)))

请添加图片描述

map() 会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

map讲解:https://www.runoob.com/python/python-func-map.html

​ (4)filter过滤

lis = [2,5,6]
x = filter(lambda x: x > 3, lst)
print('大于3的数字有:', list(x)) 

请添加图片描述

​ (5)reduce累乘

from functools import reduce
x = reduce(lambda x, y: x * y, lis)
print('累乘结果为:', x) 

请添加图片描述

reduce函数的作用是将序列的前两个元素与给定的函数联合使用,并将它们的返回值和下一个元素继续联合使用,直到整个序列处理完毕,并最终得到一个结果。

用法:https://www.runoob.com/note/26811

​ (6)sorted排序

d = {'a': 25, 'c': 27, 'b': 20, 'd': 22}
b = sorted(d.items(), key=lambda x: x[1])
print(b)  

请添加图片描述

sorted用法:https://www.runoob.com/python3/python3-func-sorted.html

参考文章:

Python Lambda函数使用总结详解:https://www.jb51.net/article/176156.htm

Python3 lambda函数高级用法:https://www.cnblogs.com/luwei0915/p/14606717.html

本人csdn博客:https://blog.csdn.net/weixin_46654114

转载说明:跟我说明,务必注明来源,附带本人博客连接。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180982.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 操作系统存储管理之虚拟存储与分页式虚拟存储系统

    操作系统存储管理之虚拟存储与分页式虚拟存储系统虚拟存储实现思路在实际运行过程,把有关作业的全部信息都装入主存储器后,作业执行时实际上不是同时使用全部信息的,有些部分运行一遍便再也不用,甚至有些部分在作业执行的整个过程中都不会被使用到(如错误处理部分)。进程在运行时不用的,或暂时不用的,或某种条件下才用的程序和数据,全部驻留于内存中是对宝贵的主存资源的一种浪费,大大降低了主存利用率。于是,提出了这样的问题:作业提交时,先全部进入辅助存储器,作

    2022年9月26日
    0
  • idea2021.4.14激活码永久_通用破解码「建议收藏」

    idea2021.4.14激活码永久_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    82
  • Java安全之Weblogic 2016-3510 分析

    Java安全之Weblogic2016-3510分析首发安全客:Java安全之Weblogic2016-3510分析0x00前言续前面两篇文章的T3漏洞分析文章,继续来分析CVE-20

    2021年12月12日
    43
  • SpringBoot自动配置的原理及实现

    SpringBoot自动配置的原理及实现SpringBoot自动配置的实现原理SpringBoot的核心就是自动配置,自动配置又是基于条件判断来配置Bean。关于自动配置的源码在spring-boot-autoconfigure-2.0.3.RELEASE.jar回顾配置属性在通常需要我们在property中配置信息时,通常使用@ConfigurationProperties(pefix=“前缀”)注解的方式从配置文件中获取配置…

    2022年5月5日
    37
  • web UI自动化之PO模式

    web UI自动化之PO模式PO是什么:PO模式,PageObject的缩写,页面对象,设计框架的思想,分层思想在PO下,应用程序的每一个页面都有一个对应的pageclass每一个pageclass维护着该web页的元素集和操作这些元素的方法pageclass中的方法命名最好根据对应的业务场景进行,例如通常登录后我们需要等待几秒钟PO的优势:PO提供了一种业务流程与页面元素操作分离的模式,这使得测试代码变得更加清晰页面对象与用例分离,使得我们更好的复用对象可复用的页面方法代码会变得更加优化更加有效的命名

    2022年6月3日
    38
  • CultureInfo

    CultureInfo // ==++==// //   //    Copyright (c) 2002 Microsoft Corporation.  All rights reserved.//   //    The use and distribution terms for this software are contained in the file//  

    2022年6月19日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号