Python Lambda函数的几种使用方法

  在进行编程时,一般我们会给一个函数或者变量起一个名字,该名称是用于引用或寻址函数变量。但是有一个低调的函数,你不需要赋予它名字,因此该函数也叫匿名函数。该函数就是Python中的Lambda函数,下面就来为大家解析lambda函数的基本使用方法。

为什么要使用Python Lambda函数?

匿名函数可以在程序中任何需要的地方使用,但是这个函数只能使用一次,即一次性的。因此Python Lambda函数也称为丢弃函数,它可以与其他预定义函数(如filter(),map()等)一起使用。相对于我们定义的可重复使用的函数来说,这个函数更加简单便捷。

如何在Python中编写Lambda函数?

Lambda函数是使用lambda运算符创建的,其语法如下:

语法: lambda参数:表达式

Python lambda函数可以包含任意多的参数,但它只有一个表达式。输入或参数可以从0开始。就像任何其他函数一样,lambda函数也可以是没有输入的。下面为大家举个例子:假如我们计算一个数的平方,则程序为:

1 a = lambda x: x*x
2 print(a(3)

输出结果为:9 

相应的,如果我们要计算两个数相乘,则:

a = lambda x,y: x*y
print(a(3,7))

输出结果为:21

在这两个例子中,第一个示例lambda函数只使用一个表达式,而第二个示例有两个参数。而且这两个函数都有一个表达式后跟参数。因此有多种逻辑关系表达式的时候不能使用lambda函数。

匿名函数加速Python运行

在比较所需的代码量之前,让我们首先记下正常函数的语法,并将其与前面描述的lambda函数进行比较。Python中的任何普通函数都是使用def关键字定义的,具体语法如下所示:

def function_name(参数):
 statement(s)

因此lambda函数所需的代码量远远少于普通函数,也就是说使用Lambda可以精简代码,加速Python程序运行。让我们举个例子对比一下:

#——————————一般函数
def my_func(x):
    return x * x
print(my_func(3))
#————————Lambda函数
a = lambda x,y: x*y
print(a(3,7))

在上面的示例中,我们需要在my_func中使用return语句来计算3的平方值。相反,lambda函数不使用此return语句,因此Lambda函数计算的速度快于my_func函数。

Python Lambda函数的几种使用方法

示例一:定义一个普通的python函数并嵌入Lambda,函数接收传入的一个参数x。然后将此参数添加到lambda函数提供的某个未知参数y中求和。只要我们使用new_func(),就会调用new_func中存在的lambda函数。每次,我们都可以将不同的值传递给参数。

def new_func(x):
    return(lambda y:x + y)
t = new_func(3)
u = new_func(2)
print(t(3))
print(u(3))

输出结果为:6,5

示例二:Lambda函数+filter函数

filter()方法用于根据一定的条件对给定的列表进行过滤。使用示例如下:

my_list = [2,3,4,5,6,7,8]
new_list = list(filter(lambda a:(a / 3 == 2),my_list))
print(new_list)

输出结果为:[6]。

此示例中my_list是一个列表,它作为参数传递给filter函数。此函数使用lambda函数检查列表中的值是否满足除以3等于2的条件,输出列表中满足条件的值。

示例三:Lambda函数+map函数

Python中的map()函数是一个将给定的列表的值依次在所定义的函数关系中迭代并返回一个新列表。例如:

my_list = [2,3,4,5,6,7,8]
new_list = list(map(lambda a:(a / 3!= 2),li))
print(new_list)

输出结果为:[真,真,真,真,假,真,真]

示例四:Lambda函数+reduce函数

reduce() 函数会对参数序列中元素进行累积。使用示例如下:

from functools import reduce
reduce(lambda a,b:a + b,[23,21,45,98])

输出结果为:187

原文地址:https://www.cnblogs.com/tianqianlan/p/11082183.html

时间: 2024-08-29 06:42:48

Python Lambda函数的几种使用方法的相关文章

python第三方库的四种安装方法

讲解一下python第三方库的四种安装方法 问题场景 (我的操作系统windows): 我使用pip install selenium 发现先爆出一大段黄色警告日志,最后是两段红色的错误日志,无法成功安装, 报错日志: "ERROR:Could not find a version that satisfies the requirement selenium ERROR:No matching distrbution found for selenium" 我的解决思路:先用的是下面

JavaScript函数的4种调用方法详解

在JavaScript中,函数是一等公民,函数在JavaScript中是一个数据类型,而非像C#或其他描述性语言那样仅仅作为一个模块来使用.函数有四种调用模式,分别是:函数调用形式.方法调用形式.构造器形式.以及apply形式.这里所有的调用模式中,最主要的区别在于关键字 this 的意义,下面分别介绍这个几种调用形式. 本文主要内容: 1.分析函数的四种调用形式2.弄清楚函数中this的意义3.明确构造函对象的过程4.学会使用上下文调用函数 一.函数调用形式 函数调用形式是最常见的形式,也是最

Python lambda函数

python允许定义单行的小函数,定义lambda函数的形式如下: lambda 参数:表达式lambda函数默认返回表达式的值,可接收任意个参数,包括可选参数,但是表达式只有一个. 如果你的函数非常简单,只有一个表达式,不包含命令,可以考虑lambda函数.

python lambda 函数 学习

lambda 函数,跟普通函数类似,使用方法是一样的,可以用于定义简单的函数. 介绍: >>> def f(x): ... return x*2 ... >>> f(3) 6 >>> g = lambda x: x*2 >>> g(3) 6 >>> (lambda x: x*2)(3) 6 再看一个稍微复杂点例子: processFunc = collapse and (lambda s: " "

Python库安装的三种简单方法

我使用的是python3.4 第一种: pip3 install 库名 pip install 库名 第二种:http://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载对应文件的whl,然后直接这样就可以了 第三种,到各种库官方地址下载源代码 转到文件对应目录,直接命令下 python setup.py install 关于三种安装方法,可能用cx-Freeze打包后,程序会缺库,建议把主要的源代码扔到Lib\site-packages下

python字符串替换的2种有效方法

python 字符串替换可以用2种方法实现:1是用字符串本身的方法.2用正则来替换字符串 下面用个例子来实验下:a = 'hello word'我把a字符串里的word替换为python1用字符串本身的replace方法a.replace('word','python')输出的结果是hello python 2用正则表达式来完成替换:import restrinfo = re.compile('word')b = strinfo.sub('python',a)print b输出的结果也是hell

Python | Lambda 函数

Python Lambda 概念 Lambda函数是一个小型匿名函数. Lambda函数可以接受任意多个参数,但只能有一个表达式. 示例 待补充 参考 https://www.w3schools.com/python/python_lambda.asp 原文地址:https://www.cnblogs.com/casperwin/p/12495851.html

Python数据可视化的四种简易方法

摘要: 本文讲述了热图.二维密度图.蜘蛛图.树形图这四种Python数据可视化方法. 数据可视化是任何数据科学或机器学习项目的一个重要组成部分.人们常常会从探索数据分析(EDA)开始,来深入了解数据,并且创建可视化确实有助于让问题更清晰和更容易理解,尤其是对于那些较大的高维度数据集.在项目结束的时候,能够以清晰的.简洁的和令人信服的方式呈现最终结果,这是非常重要的,让你的用户能够理解和明白. 你可能已经看过了我之前的文章<5种快速和简单的Python数据可视化方法(含代码)>(5 Quick

C语言中返回字符串函数的四种实现方法

有四种方式: 1.使用堆空间,返回申请的堆地址,注意释放 2.函数参数传递指针,返回该指针 3.返回函数内定义的静态变量(共享) 4.返回全局变量 其实就是要返回一个有效的指针,尾部变量退出后就无效了. 使用分配的内存,地址是有效 char   *fun() {         char*   s   =   (char*)calloc(100,   sizeof(char*)   );         if   (s)                 strcpy   (   s   ,