小编典典

sorted(key=lambda: ...) 后面的语法

all

我不太明白sorted()参数背后的语法:

key=lambda variable: variable[0]

不是lambda随意的吗?为什么variable在看起来像 a 中两次声明dict


阅读 87

收藏
2022-07-07

共1个答案

小编典典

key是一个函数,将被调用以在比较集合的项目之前对其进行转换。传递给的参数key必须是可调用的。

的使用lambda创建了一个匿名函数(它是可调用的)。sorted在可调用的情况下,只需要一个参数。Python的lambda很简单。它真的只能做和回报一件事。

的语法lambda是单词lambda后跟参数名称列表,然后是单个代码块。参数列表和代码块用冒号表示。这类似于 python
中的其他构造,例如while,forif。它们都是通常具有代码块的语句。Lambda 只是带有代码块的语句的另一个实例。

我们可以比较使用 lambda 和 def 来创建一个函数。

adder_lambda = lambda parameter1,parameter2: parameter1+parameter2
def adder_regular(parameter1, parameter2): return parameter1+parameter2

lambda 只是为我们提供了一种无需指定名称即可执行此操作的方法。这使得它非常适合用作函数的参数。

variable在这里使用了两次,因为在冒号的左边它是一个参数的名称,而在右边它在代码块中用于计算某些东西。

2022-07-07