我不太明白sorted()参数背后的语法:
sorted()
key=lambda variable: variable[0]
不是lambda随意的吗?为什么variable在看起来像 a 中两次声明dict?
lambda
variable
dict
key是一个函数,将被调用以在比较集合的项目之前对其进行转换。传递给的参数key必须是可调用的。
key
的使用lambda创建了一个匿名函数(它是可调用的)。sorted在可调用的情况下,只需要一个参数。Python的lambda很简单。它真的只能做和回报一件事。
sorted
的语法lambda是单词lambda后跟参数名称列表,然后是单个代码块。参数列表和代码块用冒号表示。这类似于 python 中的其他构造,例如while,for等if。它们都是通常具有代码块的语句。Lambda 只是带有代码块的语句的另一个实例。
while
for
if
我们可以比较使用 lambda 和 def 来创建一个函数。
adder_lambda = lambda parameter1,parameter2: parameter1+parameter2 def adder_regular(parameter1, parameter2): return parameter1+parameter2
lambda 只是为我们提供了一种无需指定名称即可执行此操作的方法。这使得它非常适合用作函数的参数。
variable在这里使用了两次,因为在冒号的左边它是一个参数的名称,而在右边它在代码块中用于计算某些东西。