谈谈python lambda

谈谈python lambda

1. lambda的语法格式

lambda [arg1 [, arg2,......argn]]: expression

2. lambda 与 def的区别

  1. def创建的方法是有名称的,而lambda没有。
  2. lambda会返回一个函数对象,但这个对象不会赋给一个标识符,而def则会把函数对象赋值给一个变量(函数名)。
  3. lambda只是一个表达式,而def则是一个语句。
  4. lambda表达式” : “后面,只能有一个表达式,def则可以有多个。
  5. 像if或for或print等语句不能用于lambda中,def可以。
  6. lambda一般用来定义简单的函数,而def可以定义复杂的函数。
  7. lambda函数不能共享给别的程序调用,def可以。

3. 使用lambda的例子

有一个list,其中的元素为字典,我们想按照字典中的timestamp的值作为排序的依据,可以在sorted函数中的key参数中使用lambda。

例如:

In [4]: info = [{"timestamp":1530505800,"count":89},{"timestamp":1530505980,"count":306},{"timestamp":1530505860,"count":88},{"timestamp":1530505920,"count":435}]

In [5]: info_up = sorted(info, key=lambda ca:ca["timestamp"])

In [6]: print info_up
[{'count': 89, 'timestamp': 1530505800}, {'count': 88, 'timestamp': 1530505860}, {'count': 435, 'timestamp': 1530505920}, {'count': 306, 'timestamp': 15
30505980}]

猜你喜欢

转载自blog.csdn.net/yrx0619/article/details/80926025