匿名函数
- 预备知识
def test(): print('for test') # 函数的名字 print(test.__name__) # 可以像普通变量一样赋值 a = test print(a.__name__) test() a() def demo(func): func() # 函数可以为其他函数的参数 demo(test)
- 匿名函数
- 场景:当一个函数作为另一函数的参数时,若改函数非常简单,而且只使用一次,先定义函数,然后作为参数传递没有必要,可以通过匿名函数进行解决。
- 格式:
lambda 参数列表: 表达式
- 参数列表:书写形式与函数的参数列表相同
- 表达式:就是匿名函数的返回值,不需要使用
return
关键字
- 示例:
def calc(a, b, yunsuan): return yunsuan(a, b) def add(a, b): return a+b print(calc(3, 5, add)) print(calc(3, 5, lambda a, b: a+b)) print(calc(3, 5, lambda a, b: a*b))
- 优点:
- 使用简洁,不用单独的定义函数,可以在调用的函数参数中直接书写
- 使用完毕后自动释放,节约内存空间
- 列表排序
# lt = [3, 6, 2, 1, 8, 4]
lt = [
{'name': 'dahua', 'age': 18, 'height': 175},
{'name': 'erhua', 'age': 17, 'height': 165},
{'name': 'dagou', 'age': 22, 'height': 185},
{'name': 'ergou', 'age': 21, 'height': 180}
]
def key(dt):
return dt['age']
# lt.sort(key=key)
lt.sort(key=lambda dt: dt['height'])
for i in lt:
print(i)
- 练习:自己实现列表排序函数,算法不限,支持升序和降序,可以排序任意类型数据
标签: python
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~