can any one explain the lambda function in python?

时间:2015-10-16 02:13:06

标签: python lambda

I have a doubt in the following code like i just want to know how the

 a.sort(key= lambda marks: marks[1])

function able to shot and return the nested list again. can any explain this ?

 n=int(raw_input())
    a=[]
    for i in range(n):
        s=raw_input()
        v=float(raw_input())
        a.append([s,v])
    a.sort(key= lambda marks: marks[1])
    print a

1 个答案:

答案 0 :(得分:1)

a.sort(key= lambda marks: marks[1])

这相当于:

def getOneth(marks):
    return marks[1]

a.sort(k=getOneth)

这个想法是a是可索引事物的列表。 a将按每个元素中第二件事的值进行排序

编辑lambdasort的工作原理

如果要对事物列表进行排序,例如从最小到最大,您需要评估每件事情。只有当你进行这样的评估时,你才能决定在其他事情之前/之后发生的事情

现在,让我们假设您有一个要从最小到最大排序的数字列表。嗯,这很简单 - 一个数字的价值立即显而易见。但是,让我们说你想要对一群人进行排序 - 你可以根据每个人的身高,或者通过他们的名字或任何其他可测量的属性对这个群体进行排序。因此,当您有这样的人员列表时,您需要告诉sort您将使用这样的属性。 key属性允许您通过指定函数来执行此操作。 sort将对列表中的每个元素使用该函数,以计算元素的值。因此,函数必然需要一个输入参数并返回描述该输入值的内容。由于我们不知道sort如何以及何时评估每个列表元素,我们只需提供稍后可以根据需要调用的函数名称