Actual parameters in Python lambda expressions -


i having difficulties understanding concept in python, particularly related use of lambda functions. refer example used in official python documentation.

here example: (found here)

>>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')] >>> pairs.sort(key=lambda pair: pair[1]) >>> pairs [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')] 

i understand functionality of lambda itself, being anonymous function. don't understand how accepts arguments opposed normal callable function: add(x,y) , x , y here actual parameters sent input add() function, while formal parameters seen in function definition can like:

def add(val1, val2):     return val1 + val2 

but in first example above, actual parameter sent lambda? when pair formal parameter (which can take name of course.)

lambda pair: pair[1] equivalent function definition following:

def lambda_equivalent (pair):     return pair[1] 

so pair parameter anonymous lambda function accepts. has 1 parameter.

the function passed argument key parameter of list.sort function. again equivalent following:

pairs.sort(key=lambda_equivalent) 

what list.sort call key function every item determine actual value list items should sorted by. list.sort call key((1, 'one')) , key((2, 'two')), etc., list item—the tuple—is parameter passed key function. in case of lambda, pair.


Comments

Popular posts from this blog

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

python Tkinter Capturing keyboard events save as one single string -

sql server - Why does Linq-to-SQL add unnecessary COUNT()? -