社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python技巧——匿名函数lambda()

Python知识驿站 • 1 周前 • 26 次点击  

    匿名函数lambda(),主要是应用在临时函数场景。比如,我需要临时计算一元二次方程,如果单独写个函数,势必增加函数块,导致结构散乱。这个时候,我们就可以使用匿名函数来完成临时函数的定义。


    语法:lambda x : exp

    其中,lambda是匿名函数关键字;x是匿名函数的形参,可以为多个;冒号“:”是形参和表达式的分界线;exp为函数主体表达式。


    实例演示:

>>> import numpy as np>>> import matplotlib.pyplot as plt
# 定义匿名函数a>>> a = lambda x : x**2+3*x-10>>> alambda> at 0x000002885FCDFEC0>
# 利用匿名函数来输出y=x**2+3*x-10方程图形。>>> import numpy as np>>> import matplotlib.pyplot as plt
>>> x = np.linspace(-10,20,300)>>> y = list(map(a,x))>>> plt.plot(x,y)[object at 0x0000028866563910>]>>> plt.title('$y=x**2+3*x-10$')Text(0.51.0'$y=x**2+3*x-10$')>>> plt.xlabel('x')Text(0.50'x')>>> plt.ylabel('y')Text(00.5'y')>>> plt.show()

    上述代码,使用lambda定义了一个匿名函数(输入x,计算出y),并赋值给a(与def a():定义的函数一样,此时的函数名即为a,只不过它用一行代码就完成了)。而后利用Matplotlib包完成了该一元二次方程的画图,效果如下:

    从上述的代码可以看到,使用lambda定义的匿名函数,仅需要1行即可完成临时函数的定义,也可以用于后面的计算,甚至可以直接写在需要的代码中,如下:

# 方式1,匿名函数赋值给变量,使得变量a成为函数名>>> a = lambda x : x**2+3*x-10>>> y = list(map(a,x))
# 方式2,直接将匿名函数应用到语句中>>> y = list(map(lambda x:x**2+3*x-10,x))

    上述方式1和方式2的效果是一样的,都可以实现期望目标,在实际的使用中可以自行考虑如何使用。

-----------------------------

延伸阅读:

    Python入门:第 1 章 Python 介绍

    Python入门:第 2 章 环境搭建与第一个程序

    Python入门:第 3 章 基本语法

    Python入门:第 4 章 数据结构

    Python入门:第 5 章 函数

    Python入门:第 6 章 类

    Python入门:第 7 章 文件读写

    Python入门:第 8 章 Python多进程

    Python入门:第 9 章 进程间通信

    Python入门:第 10 章 消息队列

    自动化办公1——初识Pandas

    自动化办公2——Pandas数据结构

    自动化办公3——Pandas数据操作1

    自动化办公3——Pandas数据操作2

    自动化办公4——Pandas数据组合、连接与重构

    自动化办公5——Pandas数据透视表

    自动化办公6——Pandas数据分组1

    自动化办公6——Pandas数据分组2

    自动化办公7——Pandas画图

    数据可视化——matplotlib基础

    数据可视化——matplotlib进阶

    数据可视化——seaborn初识

    数据可视化——seaborn绘制关系图

    数据可视化——seaborn绘制分布图

    科学计算1——Numpy初识

     科学计算2——Numpy数组操作

    科学计算3——Numpy数组变形

    科学计算4——Numpy的索引与切片

    科学计算5——Numpy的基本计算

    科学计算6——Numpy的矩阵运算

    使用 NumPy 求解线性方程组:一个完整案例


更多内容请查看微信公众号。


---------知识需要分享,需要传播---------

这里是Python知识驿站,致力于知识传播,让更多人了解Python、使用Python、爱上Python。如果你是一名程序员、业余开发者、IT从业者,或者任何一名对Python感兴趣的人,都可以加入Python知识驿站,让我们一同畅享在知识的海洋中。


---------关注我,获得更多知识---------

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/183968
 
26 次点击