python lambda功能介绍

lambda可以简化函数的定义形式,简化代码,其基本形式如下:
lambda 参数列表 : 返回值
lambda 参数形式:
1.无参数:lambda:100
2.一个参数:lambda a: a
3.默认参数:lambda a, b, c=100: a + b + c
4.可变参数:*args,返回元组
lambda *args: args
5.可变参数:*kwargs,返回字典
lambda **kwargs: kwargs
测试代码:
1)
fn1 = lambda a,b: a + b
print(fn1(1, 2))
结果:3
2)
fn2 = lambda *args: args
print(fn2(1, 2, 3))
#结果:(1, 2, 3)
print(fn2(1, 3))
#结果:(1, 3)
print(fn2(1)) 
#结果:(1,)
3)
fn3 = lambda **kwargs: kwargs
print(fn3(name='py', age=30))
#结果:{'name': 'py', 'age': 30}
4)
fn4 = lambda a, b: a if a > b else b
print(fn4(100, 200))
#结果:200
student = [{'name': 'a', 'id': '1', 'tel': 'a1'},
{'name': 'b', 'id': '2', 'tel': 'b2'},
{'name': 'c', 'id': '3', 'tel': 'c3'}]
student.sort(key=lambda x: x['name'])
print(student)
#结果:
#[{'name': 'a', 'id': '1', 'tel': 'a1'}, {'name': 'b', 'id': '2', 'tel': 'b2'}, {'name': 'c', 'id': '3', 'tel': 'c3'}]
student.sort(key=lambda x: x['name'], reverse=True)
print(student)
#[{'name': 'c', 'id': '3', 'tel': 'c3'}, {'name': 'b', 'id': '2', 'tel': 'b2'}, {'name': 'a', 'id': '1', 'tel': 'a1'}]
student.sort(key=lambda x: x['id'])
print(student)
#[{'name': 'a', 'id': '1', 'tel': 'a1'}, {'name': 'b', 'id': '2', 'tel': 'b2'}, {'name': 'c', 'id': '3', 'tel': 'c3'}]
Python中,也有几个定义好的全局函数方便使用:filter、 map、 reduce:
>>> foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
>>>print(list(filter(lambda x: x % 3 == 0, foo)))
[18, 9, 24, 12, 27]
>>> print(list(map(lambda x: x * 2 + 10, foo)))
[14, 46, 28, 54, 44, 58, 26, 34, 64]
>>> from functools import reduce
>>> print(reduce(lambda x, y: x + y, foo))#求和
139
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值