我不太理解sorted()
参数背后的语法:
key=lambda variable: variable[0]
lambda
不是武断的吗?为什么variable
在看起来像dict
的地方出现了两次?
我不太理解sorted()
参数背后的语法:
key=lambda variable: variable[0]
lambda
不是武断的吗?为什么variable
在看起来像dict
的地方出现了两次?
key
是一个函数,在比较集合中的项目之前,将调用该函数对其进行转换.传递给key
的参数必须是可调用的.
使用lambda
会创建一个匿名函数(可调用).在sorted
的情况下,callable只接受一个参数.Python的lambda
非常简单.它只能做并返回一件事.
lambda
的语法是单词lambda
,后面是参数名列表,然后是一段代码.参数列表和代码块用冒号表示.这与python中的其他构造类似,比如while
、for
、if
等等.它们都是通常有代码块的语句.Lambda只是带有代码块的语句的另一个实例.
我们可以比较lambda和def的用法来创建函数.
adder_lambda = lambda parameter1,parameter2: parameter1+parameter2
def adder_regular(parameter1, parameter2): return parameter1+parameter2
lambda只是给了我们一种不用指定名字的方法.这使得它非常适合用作函数的参数.
这里使用了两次,因为在冒号的左边是一个参数的名称,在右边的代码挡路中使用它来计算一些东西.