Python--Lambda

来源:互联网 发布:杜兰特对位科比数据 编辑:程序博客网 时间:2024/06/01 20:37

python 使用lambda 表达式来创建匿名函数

  • lambda只是一个表达式,函数体比def简单很多
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去
  • lambda函数拥有自己的名字空间,且不能访问自有参数列表之外或全局名字空间里的参数
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率

lambda函数的语法只包含一个语句: lambda [arg1 [,arg2,.....argn]]:expression 

例如:
square = lambda x : x**2print(square(3))  # 9sum = lambda  x, y : x + yprint(sum(2, 3))  # 5

lambda表达式在filter,sorted中很实用
reslut = filter(lambda num: num % 2, range(10) )print(list(reslut))  # [1, 3, 5, 7, 9]

>>> student_tuples = [...     ('john', 'A', 15),...     ('jane', 'B', 12),...     ('dave', 'B', 10),... ]>>> sorted(student_tuples, key=lambda student: student[2])   # sort by age[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]