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
python lambda功能介绍
最新推荐文章于 2023-08-08 19:45:32 发布