小编典典

如何返回排序列表的索引?

python

我需要对列表进行排序,然后返回带有列表中已排序项目索引的列表。例如,如果我要排序的列表是[2,3,1,4,5],则需要[2,0,1,3,4]返回。

这个问题以字节为单位发布,但我认为我会在这里重新发布。
http://bytes.com/topic/python/answers/44513-sorting-list-then-return-index-
sorted-item

我的具体需求是根据对象的属性对对象列表进行排序。然后,我需要重新排序对应的列表以匹配新排序的列表的顺序。

有什么好方法吗?


阅读 192

收藏
2020-12-20

共1个答案

小编典典

您可以使用python sorting functions的key参数来对索引数组进行排序。

>>> s = [2, 3, 1, 4, 5, 3]
>>> sorted(range(len(s)), key=lambda k: s[k])
[2, 0, 1, 5, 3, 4]
>>>
2020-12-20