I don't quite understand the syntax behind the
key=lambda variable: variable
key is a function that will be called to transform the collection's items before they are compared. The parameter passed to
key must be something that is callable.
The use of
lambda creates an anonymous function (which is callable). In the case of
sorted the callable only takes one parameters. Python's
lambda is pretty simple. It can only do and return one thing really.
The syntax of
lambda is the word
lambda followed by the list of parameter names then a single block of code. The parameter list and code block are delineated by colon. This is similar to other constructs in python as well such as
if and so on. They are all statements that typically have a code block. Lambda is just another instance of a statement with a code block.
We can compare the use of lambda with that of def to create a function.
adder_lambda = lambda parameter1,parameter2: parameter1+parameter2 def adder_regular(parameter1, parameter2): return parameter1+parameter2
lambda just gives us a way of doing this without assigning a name. Which makes it great for using as a parameter to a function.
variable is used twice here because on the left hand of the colon it is the name of a parameter and on the right hand side it is being used in the code block to compute something.