任何人都可以解释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函数吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章