Python基本语法之lambda函数

版权声明:转载请注明出处及作者! https://blog.csdn.net/chenzhanhai/article/details/6033931

 

lambda函数定义

       lambda函数也叫匿名函数,和普通的函数相比,就是省去了函数名称而已,使用lambda可以省去定义函数的过程,让代码更加精简,lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值。

lambda argument_list: expression

 

lambda使用场景

1.将lambda函数赋值给一个变量,通过这个变量间接调用该lambda函数,示例如下。

add = lambda x, y: x+y
print(add(5, 10))

示例的打印结果为8。

2.将lambda函数赋值给其他函数,从而将其他函数用该lambda函数替换,一般可以用在测试用例中,可以在测试用例中用于Mock从而改变原函数的结果。

import datetime
import time

time.sleep = lambda x:None
print(datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S'))
time.sleep(3)
print(datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S'))

示例打印结果如下:

3.将lambda函数作为参数传递给其他函数,如filter或map等,这些为Python内置函数,函数定义如下。

filter(function, iterable)
map(function, iterable)

filter和map均返回的是迭代器,需要转换为list才能正常打印出数值。

lambda函数使用示例如下:

foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
print(list(filter(lambda x: x % 3 == 0, foo)))
print(list(map(lambda x: x * 2 + 1, foo)))

示例运行结果如下:

4.将lambda函数作为其他函数的返回值,返回给调用者。

def agent_operate(type):
    if type == "add":
        return lambda x,y: x + y
    if type == "minus":
        return lambda x,y: x - y
    return None

print(agent_operate("add")(3, 5))
print(agent_operate("a"))

示例运行结果如下:

 

如果您喜欢这篇文章,请别忘了点赞和评论哦!

猜你喜欢

转载自blog.csdn.net/chenzhanhai/article/details/6033931