首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据条件对不同索引的python中的列表进行排序?

如何根据条件对不同索引的python中的列表进行排序?
EN

Stack Overflow用户
提问于 2020-06-08 05:04:24
回答 1查看 96关注 0票数 0

我是python的新手,我想按第一个索引按非递减顺序对python中的列表进行排序,但是如果第一个索引保持相同的值,则按第二个索引按递减顺序排序。

ex [[3,3],[3,2],[1,3]]

输出[[1,3],[3,3][3,2]]

Ex2[7,0,4,4,7,5,0,6,1,5,2]

输出[ 4,4,5,2,5,0,6,1,7,1,7,0]

在c++中,我使用这个函数作为键

代码语言:javascript
复制
   static bool lessThan(vector<int> &l , vector<int> &r)
{

    if (r[0] == l[0])
        return l[1]>r[1];

        return l[0]<r[0];
}

但是在python上,key函数有不同的行为。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-08 05:16:47

由于您只是对数字进行排序,所以可以走捷径,只需取元组中第二个元素的负数:

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

sorted(l, key=lambda x: (x[0], -x[1]))

# [[1, 3], [3, 5], [3, 3], [3, 2], [3, 0], [3, -1]]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62255335

复制
相关文章

相似问题

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