当前位置: 首页 > news >正文

Python3 lambda 函数入门示例 Python lambda 函数

Python lambda 函数

首先,这个语法跟C++的语法几乎一样;

通常称 lambda 函数为匿名函数,也称为 丢弃函数,因为应一下子就不要了,不会长期凝结下来形成SDK API;本人觉得它有点类似 inline 函数,或者叫做 小小函数,一行写罢;

一, 先看一眼示例

先运行要给简单的例子,让问题具象一些:

例一: x+x+x

#######################

(base) hipper@hipper-G21:~$ pythonPython 3.11.3 (main, Apr 19 2023, 23:54:32) [GCC 11.2.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>>>>>>>> triple = lambda x: x + x + x>>> triple(3)9>>> print(triple(2))6>>>

#######################

例二:三维空间欧氏距离

#######################

>>> import math>>> eucli = lambda x, y, z: math.sqrt(x**2 + y**2 + z**2)>>> eucli(3,4,0)5.0>>>

#######################

其中,这里的triple 和 eucli 是lambda 函数对象的指针;

二,lambda函数出现的场景

那么,lambda函数用在什么场景呢?

1,在 def 定义的函数内部

#######################

import mathdef add_x_y_z(x, y, z):add = lambda a, b: a+bsum = add(x, y)sum = add(sum, z)return sumprint( add_x_y_z(3, 4, 5))

#######################math 没用到

2,lambda 结合 filter

filter函数,顾名思义是对list中的每个元素做过滤,并返回一个新的list;

从数学考试得分list中,找出优秀的分数:

#######################

(base) hipper@hipper-G21:~/ex/ex_python/lambda_ex$ ipythonPython 3.11.3 (main, Apr 19 2023, 23:54:32) [GCC 11.2.0]Type 'copyright', 'credits' or 'license' for more informationIPython 8.12.0 -- An enhanced Interactive Python. Type '?' for help.In [1]: score_list=[77, 65, 47, 83, 77, 97, 89, 51, 92]In [2]: outstanding_list=list(filter(lambda score: (score>80), score_list))In [3]: outstanding_listOut[3]: [83, 97, 89, 92]In [4]:

#######################

3, lambda 结合 map

map函数,会把list中的元素一一作为参数,返回值一一构成新的列表;

#######################

(base) hipper@hipper-G21:~$ ipythonPython 3.11.3 (main, Apr 19 2023, 23:54:32) [GCC 11.2.0]Type 'copyright', 'credits' or 'license' for more informationIPython 8.12.0 -- An enhanced Interactive Python. Type '?' for help.In [1]: num_list=[1,2,3,4,5,6,7]In [2]: is_even_list=list( map( (lambda num:(num%2==0)) , num_list ) )In [3]: is_even_listOut[3]: [False, True, False, True, False, True, False]In [4]:

#######################

4, reduce 与 lambda结合

reduce函数在包functools 中,按照某个运算符一一累算 list中的所有元素

#######################

(base) hipper@hipper-G21:~$ ipythonPython 3.11.3 (main, Apr 19 2023, 23:54:32) [GCC 11.2.0]Type 'copyright', 'credits' or 'license' for more informationIPython 8.12.0 -- An enhanced Interactive Python. Type '?' for help.In [1]: from functools import reduceIn [2]: num_list=[1,2,3,4,5]In [3]: sigma=reduce(lambda a1, a2: a1+a2, num_list)In [4]: sigmaOut[4]: 15In [5]: order=reduce(lambda a1, a2: a1*a2, num_list)In [6]:

#######################

http://www.lryc.cn/news/138876.html

相关文章:

  • 【计算机网络】HTTPs 传输流程
  • 【Linux】国产深度系统装机必备(开发、日常使用)
  • 动态规划入门:斐波那契数列模型以及多状态(C++)
  • LeetCode438.找到字符串中所有字母异位词
  • 【微服务】03-HttpClientFactory与gRpc
  • iOS开发之查看静态库(.a/.framework)中包含的.o文件和函数符号(ar,nm命令)
  • Idea常用快捷键--让你代码效率提升一倍(一)
  • 【Open3D】第二篇:GUI编程
  • 【Python】P0 本系列博文简介与大纲
  • FL Studio 21.1.0 Build 3713中文破解免费下载安装激活
  • 从0开始配置eslint
  • Activity 的启动流程(Android 13)
  • deepspeed学习资料
  • 数据分享|R语言PCA主成分、lasso、岭回归降维分析近年来各国土地面积变化影响...
  • Docker-Consul
  • Pygame编程(2)display模块
  • 第十五天|104.二叉树的最大深度、111.二叉树的最小深度、 222.完全二叉树的节点个数
  • 图像识别技术在医疗领域的革命:探索医学影像诊断的未来
  • 计网第四章(网络层)(二)
  • 原生微信小程序使用 wxs;微信小程序使用 vant-weapp组件
  • qml相关知识1
  • linux+c+qt杂记
  • shouldComponentUpdate有什么作用?
  • 华为OD-滑动窗口最大值
  • Linux:ansible自动化运维工具
  • 前端如何使用WebSocket发送消息
  • 纸贵科技连续三年蝉联IDC中国 FinTech 50榜单
  • 台积电美国厂施工现场混乱,真令人头痛 | 百能云芯
  • React绑定antd输入框,点击清空或者确定按钮实现清空输入框内容
  • Springboot整合liquIbase组件