欢迎访问宙启技术站
智能推送

Python函数——lambda表达式

发布时间:2023-06-07 08:53:51

Python中lambda表达式是一种快速定义匿名函数的方式。lambda表达式可以快速地定义出函数,让代码显得更优雅,更精简。<br>

1.基本语法<br>

lambda表达式的基本语法为lambda parameter_list: expression。其中,lambda关键字用来告诉Python,这是lambda表达式;parameter_list是形式参数列表;expression是函数体。<br>

例如:<br>

f = lambda x,y: x + y
print(f(1,2))

输出结果为3。<br>

2.lambda表达式作为函数参数<br>

lambda表达式非常适合作为函数参数,在不需要定义完整函数的情况下,使用lambda表达式可以使程序更加简洁和易读。例如:<br>

list1 = [(1,2),(3,1),(4,5),(2,3)]
sorted_list = sorted(list1,key=lambda x:x[1]) # 按照元组的第二个元素进行排序
print(sorted_list)

输出结果为[(3, 1), (1, 2), (2, 3), (4, 5)]。<br>

3.高阶函数<br>

Python中的高阶函数指的是能够接收函数作为参数或者返回函数的函数。lambda表达式往往作为高阶函数的参数,用来定义函数的计算规则。例如:<br>

def calculate(a,b,f):
    return f(a,b)
result1 = calculate(3,5,lambda x,y:x+y) # 计算3+5
result2 = calculate(3,5,lambda x,y:x*y) # 计算3*5
print(result1,result2)

输出结果为8 15。<br>

4.lambda表达式与map、filter函数<br>

map和filter是Python内置函数,在Python3中,它们返回的是一个迭代器对象。lambda表达式能够与map、filter函数搭配使用,进一步简化代码。例如:<br>

list1 = [1,2,3,4]
list2 = list(map(lambda x:x*2,list1)) # 对list1中的元素乘以2
list3 = list(filter(lambda x:x>2,list1)) # 筛选出大于2的元素
print(list2,list3)

输出结果为[2, 4, 6, 8] [3, 4]。<br>

5.lambda表达式的局限性<br>

lambda表达式非常适合定义简单的函数,但往往无法处理复杂的业务逻辑。当需要进行较为复杂的计算时,应该使用完整的函数定义。<br>

6.总结<br>

lambda表达式是Python中快速定义匿名函数的方式。它通常用于简化代码,定义计算规则等。但它的局限性也很明显,无法处理复杂的业务逻辑。在编写代码时,需要根据具体情况选择合适的编程方式。