如何按照它們在python中指向的內容對索引列表進行排序?索引排序清單
我
indices = list(range(len(mylist)))
我想,這樣如果a
在指數則mylist[a] > mylist[b]
之前b
指標進行排序。
如何按照它們在python中指向的內容對索引列表進行排序?索引排序清單
我
indices = list(range(len(mylist)))
我想,這樣如果a
在指數則mylist[a] > mylist[b]
之前b
指標進行排序。
的Python 2.6+,最優雅的回答:
indices.sort(key = lambda x:mylist[x], reverse = True)
indicies.sort(lambda x,y:mylist[x]-mylist[y])
此外,讓我補充下面的代碼片段作爲一個答案,使用你原來的問題提供的信息...
我想給指數排序,以便如果 一個優先於b在索引然後mylist [a]> mylist [b]。
...和其他信息在您的評論
也有,如果有什麼MYLIST是 numpy的花車列表?
然後,你可以簡單地做:
In [2]: import numpy
In [3]: a = numpy.asarray([-1, 2.73, 15.827, -8.48, 9, 13, 15, 3.22, 0, -1, 1])
In [4]: indices = a.argsort()[::-1]
Out[4]: array([ 2, 6, 5, 4, 7, 1, 10, 8, 9, 0, 3])
In [5]: a[indices]
Out[5]:
array([ 15.827, 15. , 13. , 9. , 3.22 , 2.73 , 1. ,
0. , -1. , -1. , -8.48 ])
我需要進口的東西來獲得某種工作? – 2011-02-10 22:34:33
看我的編輯,對不起。排序是一個列表函數 – dfb 2011-02-10 22:38:05