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

Python lambda 函数

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

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

一, 先看一眼示例

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

例一: x+x+x

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

python 复制代码
(base) hipper@hipper-G21:~$ python

Python 3.11.3 (main, Apr 19 2023, 23:54:32) [GCC 11.2.0] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>>

>>>

>>> triple = lambda x: x + x + x

>>> triple(3)

9

>>> print(triple(2))

6

>>>

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

例二:三维空间欧氏距离

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

python 复制代码
>>> 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 定义的函数内部

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

python 复制代码
import math


def add_x_y_z(x, y, z):

    add = lambda a, b: a+b

    sum = add(x, y)

    sum = add(sum, z)


    return sum


print( add_x_y_z(3, 4, 5))

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

2,lambda 结合 filter

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

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

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

python 复制代码
(base) hipper@hipper-G21:~/ex/ex_python/lambda_ex$ ipython

Python 3.11.3 (main, Apr 19 2023, 23:54:32) [GCC 11.2.0]

Type 'copyright', 'credits' or 'license' for more information

IPython 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_list

Out[3]: [83, 97, 89, 92]


In [4]:

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

3, lambda 结合 map

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

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

python 复制代码
(base) hipper@hipper-G21:~$ ipython

Python 3.11.3 (main, Apr 19 2023, 23:54:32) [GCC 11.2.0]

Type 'copyright', 'credits' or 'license' for more information

IPython 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_list

Out[3]: [False, True, False, True, False, True, False]


In [4]:

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

4, reduce 与 lambda结合

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

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

python 复制代码
(base) hipper@hipper-G21:~$ ipython

Python 3.11.3 (main, Apr 19 2023, 23:54:32) [GCC 11.2.0]

Type 'copyright', 'credits' or 'license' for more information

IPython 8.12.0 -- An enhanced Interactive Python. Type '?' for help.


In [1]: from functools import reduce


In [2]: num_list=[1,2,3,4,5]


In [3]: sigma=reduce(lambda a1, a2: a1+a2, num_list)


In [4]: sigma

Out[4]: 15


In [5]: order=reduce(lambda a1, a2: a1*a2, num_list)


In [6]:

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

相关推荐
菜鸟不秃头9 分钟前
手搓 ViT -- 并完成图像分类任务
python
ZhuoAIStage12 分钟前
舞台工艺检测表单自动生成:用 Python 与智能体 Skill 打通规范限值到可填表的数据流
python·第三方检测·舞台工艺·表单自动生成·规范性引用
Elastic 中国社区官方博客42 分钟前
Observability:当 YAML 遇上 IConfiguration:OpenTelemetry .NET SDK 的声明式配置
大数据·开发语言·elasticsearch·搜索引擎·全文检索·.net
郑州光合科技余经理44 分钟前
同城商城源码:商品库和订单库怎么随包交付
android·java·开发语言·后端·uni-app·php·ai编程
welfare9621 小时前
新号别搞:C++_list
开发语言·c++
数据狐(Datafox)1 小时前
一文读懂京东商品详情 API:返回字段解读与 JSON 样例
开发语言·数据库·爬虫·json
MoRanzhi12031 小时前
第3篇 · 使用 PyQt5 实现 2048 桌面版游戏:MVC 架构与撤销和重做
python·mvc·pyqt5·桌面应用开发·gui开发·2048游戏·撤销与重做
蚰蜒螟1 小时前
从 Java SocketChannel 到 TCP 挥手:一次 close() 的完整调用链与引用计数解析
java·python·tcp/ip
坤坤子吖1 小时前
Linux 线程同步与互斥——条件变量与线程同步
linux·开发语言·c++·笔记·学习
damoluomu1 小时前
国产 Java CMS 的协议和坑,讲清楚
java·开发语言