首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的自定义排序

问Python中的自定义排序
EN

Stack Overflow用户
提问于 2016-08-18 03:22:35
回答 2查看 667关注 0票数 1

我是Python的新手,所以问题是,

我有以下列表项目,

代码语言:javascript
复制
[[0, 1], [2,3], [1,2], [4, 5], [3, 5]]

我想按升序对此列表进行排序,首先比较每个列表中的第二项,然后比较第一项

这是我的代码

代码语言:javascript
复制
def sorting(a, b):
    if a[1] > b[1]:
        return 1
    elif a[1] == b[1]:
       if a[0] > b[0]:
            return 1
        else:
            return -1
    else:
        return 1

但是,有没有人可以帮我用带lambda和comprehensions的排序函数重写这个代码?

EN

回答 2

Stack Overflow用户

发布于 2016-08-18 03:32:18

当排序查看它们时,您可以颠倒顺序。只要不改变原来的列表项即可。

已排序(l,key=lambda x:(x1,x))

票数 1
EN

Stack Overflow用户

发布于 2016-08-18 03:28:34

你应该使用Python内置的sorted()方法,它已经支持λ比较了。

代码语言:javascript
复制
l = [[0, 1], [2,3], [1,2], [4, 5], [3, 5]]
l = sorted(l, cmp=sorting)

如果您想要以您所说的方式进行排序,那么您的比较函数是错误的。没有返回零的情况,底部的return 1应该是return -1。还有缩进错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39004687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档