對不起,我的問題標題很模糊。
我的問題是,我有一個列表a = [6, 9, 8, 10, 7, 5, 2, 3, 1, 4]
我需要獲得新的訂單b = [4, 2, 3, 5, 1, 6, 10, 8, 7, 9]
,其中b
第一個元素是4
因爲a
10
第四元件是人數最多的。同樣,在b
的第二個元素是2
因爲在第二大量的是它的第二個數字9
對列表值進行排序以獲取其索引的新順序,Python方式
所以,我希望你得到了我的問題:排序列表a
,並獲得新的訂單b
。
目前,我通過使用list.sort
來完成一些準備工作。
tmp = zip(range(1,11), a)
tmp.sort(key=lambda x:(-x[1],x[0]))
b = [x[0] for x in tmp]
我不知道是否有更好的Python是這樣實現我的目標?
感謝您的任何建議〜
輝煌。我希望我能想到它。 +1 – mgilson 2013-03-01 03:12:12
我同意@mgilson - 非常非常好......'範圍'可以使'len(a)+ 1'結束,使它更通用,但是哇... +1 – 2013-03-01 03:20:08
謝謝。我已經改變它使用'len(a)+ 1'。 – grc 2013-03-01 03:24:32