任何人都可以解释python中的lambda函数吗? [复制]

Posted

技术标签:

【中文标题】任何人都可以解释python中的lambda函数吗? [复制]【英文标题】:can any one explain the lambda function in python? [duplicate] 【发布时间】:2016-01-14 16:12:05 【问题描述】:

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

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

函数能够再次拍摄并返回嵌套列表。谁能解释一下?

 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

【问题讨论】:

sort 对其元素进行排序。 key 函数用于识别排序依据。哪一部分不清楚? lambda 是什么? sort 是如何工作的?... 这里是嵌套列表对吗? ..所以通常用数字排序很容易理解..我想知道嵌套列表的缩短。 它只是排序,就像其他任何东西一样。要点是知道一个元素何时大于或小于另一个元素,这对于数字是显而易见的;但是在这里,我们想按第二个元素排序,这就是key 给我们的。 【参考方案1】:
a.sort(key= lambda marks: marks[1])

这相当于:

def getOneth(marks):
    return marks[1]

a.sort(k=getOneth)

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

编辑lambda 中的sort 是如何工作的

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

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

【讨论】:

我们必须在 "a.sort(k=getOneth)" 中传递一些参数,对吗? ..我不清楚..你能解释一下吗? @Bee..:查看编辑

以上是关于任何人都可以解释python中的lambda函数吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

了解 Python 中的嵌套 lambda 函数行为

Python:将 lambda 函数附加到列表 [重复]

在python中自动测试aws lambda函数

aws lambda 函数可以向专用网​​络中的端点发布帖子吗?

python中的lambda函数

你能解释一下 lambda 表达式吗? [复制]