任何人都可以在python中解释lambda函数吗?

can any one explain the lambda function in python?

本问题已经有最佳答案,请猛点这里访问。

我对下面的代码有疑问,就像我只想知道

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

函数可以再次拍摄并返回嵌套列表。有什么解释吗?

1
2
3
4
5
6
7
8
 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
a.sort(key= lambda marks: marks[1])

这相当于:

1
2
3
4
def getOneth(marks):
    return marks[1]

a.sort(k=getOneth)

其思想是,a是一个可索引事物的列表。a将按每个元素中第二个元素的值排序。

编辑:sortlambda的工作原理

当你想从最小到最大排序一个事物列表时,你需要评估每一个事物。只有当你做这样的评估时,你才能决定哪件事在哪件事之前/之后发生

现在,假设您有一个要从最小到最大排序的数字列表。好吧,这很简单-一个数字的值很明显。但是假设你想对一组人进行排序——你可以根据每个人的身高、他们的名字或任何其他可测量的属性对这组人进行排序。因此,当您有这样的人的列表时,您需要告诉sort您将使用这样的属性。key属性允许您通过指定一个函数来实现这一点。该函数将由sort对列表中的每个元素使用,以计算元素的值。因此,函数必然需要一个输入参数,并返回对该输入值的某种描述。由于我们不知道sort将如何和何时评估每个列表元素,因此我们只提供函数的名称,该函数稍后可以根据需要调用。