python中的lambda键和排序

python中的lambda键和排序,python,sorting,lambda,Python,Sorting,Lambda,我很难理解: key = lambda x: x[1] list = [(i,sum(1 for y in lower_letters if y==i)) l.sort(cmp=lambda x,y: cmp(x[1],y[1]))) #only 2.x??? cmp(a,b) 它是否返回与“.sort”不同的内容? 有人能解释一下它应该做什么吗? 为什么我们不使用list.sort()之类的东西 我真的不知道x,y是什么意思,这就是我老师写的,我试着猜她是什么意思 cmp指

我很难理解:

key = lambda x: x[1]
list = [(i,sum(1 for y in lower_letters if y==i))

l.sort(cmp=lambda x,y: cmp(x[1],y[1]))) #only 2.x???
        cmp(a,b)
它是否返回与“.sort”不同的内容? 有人能解释一下它应该做什么吗? 为什么我们不使用list.sort()之类的东西


我真的不知道x,y是什么意思,这就是我老师写的,我试着猜她是什么意思

cmp
指定两个参数(iterable元素)的自定义比较函数,根据第一个参数是否被视为小于、等于或大于第二个参数,该函数应返回负数、零数或正数:cmp=lambda x,y:cmp(x.lower(),y.lower())。默认值为“无”

以及构建int的文档

比较两个对象x和y,并根据结果返回一个整数。如果xy,则返回值为正


@你的问题不够清楚

据我所知,您想知道如何使用
key=lambda…
进行排序吗

我可以举一些例子:

您有一个元组列表,
l=[(1,2)、(3,4)、(5,1)、(2,3)]

  • 如果使用
    sorted(l)
    ,这将按每个元组的第一个元素对列表进行排序,结果是
    [(1,2)、(2,3)、(3,4)、(5,1)]

  • 如果要按第二个元素排序,请使用排序(l,key=lambda x:x[1]),这将导致
    [(5,1)、(1,2)、(2,3)、(3,4)]
    。编号1也相当于排序(l,key=lambda x:x[0])

  • 如果要按总和排序:使用
    排序(l,key=sum)
    ,这将导致
    [(1,2)、(2,3)、(5,1)、(3,4)]


  • *上述3个示例从最低到最高排序。

    欢迎使用SO。请提供一个.1)
    未在任何地方使用。为什么定义它?2) 不要命名变量
    列表
    ,这是一个内置函数。3) 什么是
    l