Python中的 lamda表达式

Python中的 lamda表达式

lambda语句被用来创建新的函数对象,并且在运行时返回它们。

python lambda是在python中使用lambda来创建匿名函数,而用def创建的方法是有名称的,除了从表面上的方法名不一样外,python lambda还有哪些和def不一样呢?

1 python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而def则会把函数对象赋值给一个变量。

2 python lambda它只是一个表达式,而def则是一个语句。

lambda表达式在“:”后只能有一个表达式。也就是说,在def中,用return可以返回的也可以放在lambda后面,不能用return返回的也不能定义在python
lambda后面。因此,像if或for或print这种语句就不能用于lambda中,lambda一般只用来定义简单的函数。

使用lamda形式

<span style="font-size:18px;">def make_repeater(n):
    return lambda s: s*n
twice = make_repeater(2)
print(twice('word'))
print(twice(5))</span>

它如何工作:

这里,我们使用了make_repeater函数在运行时创建新的函数对象,并且返回它。lambda语句用来创建函数对象。本质上,lambda需要参数(可能是多个参数),后面仅跟单个表达式作为函数体,而表达式的值被这个新建的函数返回。注意,即便是print语句也不能用在lambda形式中,只能使用表达式。

我们来看更多例子:

1 单个参数的:

g = lambda x:x*2
print(g(3))

结果是6,分析(x是函数的形参,x*2是函数体)

2 多个参数的:

m = lambda x,y,z: (x-y)*z
print( m(3,1,2))(x,y,z是函数的形参,(x-y)*z是函数体)

结果是4

时间: 2024-11-09 03:17:42

Python中的 lamda表达式的相关文章

Python中的Lambda表达式小析

Lambda表达式在Python中经常使用到,在此总结下Lambda表达式的常用方法. 首先,要明白Lambda表达在Python中是作为一个匿名函数的构造器而存在.其次,要明白Lambda表达式的常用场景是Lambda表达式对应函数的使用次数非常有限(因此,没有必要专门定义一个非匿名函数),同时保证了代码的简洁性. 最简单的一个Lambda表达式例子和对应的非匿名函数: f = lambda x: x + 1 print ( f(1) ) def h (x): return x + 1 pri

python中的问号表达式

我们知道C语句中存在问号表达式,例如下面: a=2>1? 10: -10; 那么,Python脚本语言中是否也存在类似的问号表达式呢?答案是肯定的.而且存在两种方式. 方式1:使用if else实现 如下例: b = 5 a = 2 if b == 4 else 1 print a 方式2:使用逻辑运算符实现 如下例: b = 5 a = b == 4 and 2 or 1 要注意:使用逻辑运算时要保证and后面的变量值不能为非,否则会出错. 提示 python中的and和or和其它语言的区别很

Python 中的 lambda 表达式

Lambda 表达式是一种匿名函数的写法,主要用于短小且就使用一次的地方,没有 lambda 前所有的函数必须是有名字的,也就是说先将函数声明好,再进行调用. 下面看看 lambda 在 python 中是如何使用的 单个 lambda ''' python 3.4 one lambda function ''' if __name__ == "__main__": f = lambda x: x + 42 print(f(1)) >>> 43 >>>

Python中的Lambda表达式

Lambda表达式在python程序中是一种很常见的匿名方法的书写形式,它书写起来非常简单,但是牺牲了可读性.下面来看一下Lambda的简单介绍. 语法 lambda [parameter_list]:expression Lambda表达式的返回值是一个函数,[parameter_list]是函数的参数,expression是具体的操作.它对应的非匿名方法的书写方式为: def function([parameter_list]): expression 如下面的例子: #Function d

python中的lambda表达式与三元运算

1 >>> def add(x,y): #定义一个加法函数 2 return x+y #返回两个参数的相加的值 3 4 >>> z=f(3,4) 5 >>> print(z) 6 7 #调用加法函数返回7 7 >>> lambda x,y:x+y 8 <function <lambda> at 0x0000020F385B86A8> 9 #可以看到lambda是一个 function(函数)类对象 10 >

详解Python中的生成器表达式(generator expression)

介绍 1.生成器表达式(generator expression)也叫生成器推导式或生成器解析式,用法与列表推导式非常相似,在形式上生成器推导式使用圆括号(parentheses)作为定界符,而不是列表推导式所使用的方括号(square brackets). 2.与列表推导式最大的不同是,生成器推导式的结果是一个生成器对象.生成器对象类似于迭代器对象,具有惰性求值的特点,只在需要时生成新元素,比列表推导式具有更高的效率,空间占用非常少,尤其适合大数据处理的场合. 3.使用生成器对象的元素时,可以

Python中利用for表达式创建列表

1.for表达式语法格式及用法 for表达式利用可迭代对象创建新的列表,for表达式也称为列表推导式,具体语法格式如下: [表达式 for 循环计数器 in 可迭代对象] 例: a = [ i + i for i in range(0,5) ] print (a) # 返回的是一个列表,打印 [0, 2, 4, 6, 8] 上面的例子中,range相当于包含5个元素(0,1,2,3,4),对表达式 i + i 执行5次,并且把5次执行的值收集起来作为新的列表元素. 2.for表达式添加if条件

3.(补充)python中的lambda表达式的基本使用

lambda表达式,也叫匿名函数,是普通函数的'迷你版' lambda表达式的格式: lambda 形参:表达式 func1 = lambda x:x+1 func1(10) >>>11 从上面的例子可以看出,lambda函数不需要手动定义返回值,表达式的结果,就会直接作为返回值返回. 比如说,定义一个lambda函数,给每个字符串前面加一个bitch字符串. func2 = lambda name:"bitch "+ name print func2("j

Python中特殊函数和表达式 filter,map,reduce,lambda

1. filter 官方解释:filter(function or None, sequence) -> list, tuple, or string Return those items of sequence for which function(item) is true. If function is None, return the items that are true. If sequence is a tuple or string, return the same type,