Python函数式编程(三):匿名函数lambda

匿名函数lambda

        在传入函数时, 有些时候, 不需要显式地定义函数, 直接传入匿名函数更方便。在Python 中, 对匿名函数提供了支持。 计算 f(x)=x2 时, 除了定义一个 f(x)的函数外,还可以直接传入匿名函数。 使用 lambda 可以声明一个匿名函数。

        lambda 表达式就是一个简单的函数。 使用 lambda 声明的函数可以返回一个值, 在调用函数时, 直接使用 lambda 表达式的返回值

        lambda arg1,arg2,arg3... : <表达式>

其中 arg1/arg2/arg3 为函数的参数。 <表达式>相当于函数体。 运算结果是: 表达式的运算结果。

       匿名函数有个限制, 就是只能有一个表达式, 不用写 return, 返回值就是该表达式的结果。

       用匿名函数有个好处, 因为函数没有名字, 不必担心函数名冲突。 此外, 匿名函数也是一个函数对象, 也可以把匿名函数赋值给一个变量, 再利用变量来调用该函数

f = lambda a,b,c:a+b+c
print('2+3+4 的结果:',f(2,3,4))

#相当于

def func(a,b,c):
    return a+b+c
print('2+3+4 的结果:',func(2,3,4))

 

L=map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])
print(list(L))

也可以这样写

new_list = [x*x for x in list_]

 对list中的元素按照第一个值排序

list_ = sorted(list_, key=lambda x:x[0])

 对list中的元素按照第一个值排序, 如果第一个值相同,按照第二个值排序

list_ = sorted(list_, key=lambda x:(x[0],x[1]))

 

 默认都是升序的

 对list中的元素按照第一个值排序, 如果第一个值相同,按照第二个值降序排序

list_ = sorted(list_, key=lambda x:(x[0],-x[1]))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值