繁体   English   中英

如何在python中按最大两个轴对列表进行排序?

How to sort a list by the maximum of two axes in python?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想按列表中每个元素的最大索引0和索引1对列表进行排序。

例如,如果我有一个这样的列表:

[[2,1,2],
 [0,3,9],
 [1,2,9],
 [1,1,2],
 [3,2,7]]

排序后,它应如下所示:

[[0,3,9],
 [3,2,7],
 [2,1,2],
 [1,2,9],
 [1,1,2]]

那么什么是有效的方法呢?

我更喜欢使用numpy,但也欢迎使用其他解决方案。

2 个回复

取前两列的逐行最大值argsort,然后取反以得到降序。

您尚未指定任何决胜局,因此这与所需的输出不匹配。 换句话说,没有独特的解决方案可以解决您的问题。

res = A[A[:, :2].max(1).argsort()[::-1]]

array([[3, 2, 7],
       [0, 3, 9],
       [1, 2, 9],
       [2, 1, 2],
       [1, 1, 2]])

只需使用带有自定义键功能的sort

data = [[2,1,2],[0,3,9],[1,2,9],[1,1,2],[3,2,7]]


data.sort(key=lambda x: max(x[0:2]),reverse=True)
2 如何对 Python 中的两个列表进行排序? [复制]

这个问题在这里已经有了答案: 根据另一个列表中的值对列表进行排序? (14 个回答) 我有 2 个清单; 姓名和年龄。 我想按年龄对它们进行排序(名称与年龄有关;zip function?),但我不知道如何。 ...

2019-11-01 10:26:25 3 45   python
3 如何在 Python 中根据第一个列表和另一个列表对两个列表进行排序?

要并行排序两个列表,首先按一个列表排序,然后对于具有相同值的元素,按第二个列表排序的方法是什么? 任何一个列表都可能有重复的元素。 输出需要基于(1)list_a中的值从大到小,以及(2)list_a中具有相同值的元素,在list_b中按字母顺序排序。 有任何想法吗? ...

4 如何在python中对列表中的两个列表路径的字符串进行排序?

我有两个包含文件路径的列表 基于lst_A ,我想对列表B进行排序,以使A和B中两个路径的基名的名字和名字应该相同。 在这种情况下是test_xx 。 因此,预期的候选清单B为 另外,我想指出两个列表中哪个位置的名字中的名字和名字相同(例如test_xx ),因此数组指示符应 ...

5 在Python中针对一个列表对两个列表进行排序

我有两个列表,一个列表用于图像,另一个列表用于数组。 我想按长度对list2进行排序,可以这样做: 现在,l2中的元素顺序已更改, 我想保留属于这些列表的图像, 即l1也必须组织起来,以便img1 -> corresponds to [1, 2, 3, 4] ...

6 用另外两个列表在Python中对列表进行排序

我的问题与这两个链接1和2非常相似: 我有三个不同的列表。 我想基于List2对List1进行排序(按升序排序)。 但是,我在List2中重复了一遍。 然后我想按List3对这些重复进行排序(按降序排列)。 足够困惑? 是)我有的: 我想要的是: 'b'出现在 ...

7 python:如何在两个不同的键上对复杂列表进行排序

我有一个奇怪的列表,以下列方式构建: 我想先用数字(desc)对它进行排序,然后,如果数字相同,则按名称(asc)排序。 所以我想要的结果是: 我试着想一个我可以在sort方法中使用的lambda函数,但我不确定我能做到。 ...

8 按其他两个列表对 Python (numpy) 中的数组进行排序

我有一个向量数组(或者为简单起见,你可以假设我有一个数组)基于一些计算我制作了 2 个不同的数组,它们的第一个数组的大小相同,其中包含 0 和 1 之间的数字(对于第一个数组的每个索引,第二个数组)和包含汉明距离的第三个数组)现在我想同时根据第二个和第三个数组对第一个数组进行排序。 由于第二个和第三 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM