python中的lambda关键字
对于一切很模糊的知识,首要的是抓住概念的定义。
lambda:在 Python 中用于创建匿名函数的关键字。
也即,lambda是一种关键字,这种关键字的作用是创建匿名函数。
这一段很好懂,就是匿名函数有点懵。
什么是匿名函数?先不管定语部分“匿名”,什么是函数?
函数就是一个加工厂,输入参数,输出结果。
那匿名函数呢?匿名函数就是没有函数名的函数。平时写一个实现某种功能的小函数,都需要def func_name(**args,**kewargs),有了lambda,就可以省略这个定义的操作啦。
直接 lambda arguments: expression
这里的expression是一个表达式,而不是代码块。所以你,这个lamda就是用来创建一个功能比较简单,一个表达式就能写完的函数。
下面举例:
# 使用 lambda 定义一个简单的加法函数
add = lambda x, y: x + y
# 调用 lambda 函数
result = add(3, 5)
print(result) # 输出: 8
在这个例子中,lambda 函数接受两个参数 x 和 y,并返回它们的和。add 变量保存了这个匿名函数,之后可以像普通函数一样调用。
但更常见的情况是lambda函数通常在需要传递函数作为参数的地方使用,比如在 map、filter、sorted 等函数中
# 使用Lambda函数将列表中的每个元素平方
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x**2, numbers))
print(squared_numbers) # 输出: [1, 4, 9, 16, 25]
#numbers 是一个列表,[1, 2, 3, 4, 5]。
#lambda x: x**2 是一个Lambda函数,它接受一个参数 x,并返回 x 的平方。
#map() 函数将该Lambda函数映射到 numbers 列表的每个元素上。
#结果是一个新的可迭代对象,其中包含每个元素的平方值
#使用list将可迭代对象变为数组
注:这里再补充介绍一下map函数,
map(function, iterable, ...)
#function: 要应用于每个可迭代对象元素的函数。
#iterable: 一个或多个可迭代对象,可以是列表、元组等。
map() 函数是Python内置的一个高阶函数,它接收一个函数和一个或多个可迭代的对象作为参数,然后将该函数应用到所有可迭代对象的对应元素上,返回一个新的可迭代对象(通常是一个列表)