2013-02-19 101 views
1

多維數組我有一個數據結構,如:訂購在python

[ ["id1", 123], ["id2", 1], ["id3", 6] ] 

和我想下令(遞減)根據第二個變量,像這樣:

[ ["id1", 123], ["id3", 6], ["id2", 1] ] 

我可以寫一個小功能來做這件事,但我幾乎可以肯定,有一種很酷的單行方式去做,不是嗎?謝謝。

回答

7

可以使用sorteditemgetter做到這一點:

>>> a = [ ["id1", 123], ["id2", 1], ["id3", 6] ] 
>>> from operator import itemgetter 
>>> sorted(a, key=itemgetter(1), reverse=True) 
[['id1', 123], ['id3', 6], ['id2', 1]] 

如果你純粹想一個班輪(無進口),那麼你可以lambda它:

>>> sorted(a, key=lambda L: L[1], reverse=True)