1. 程式人生 > >python實現字典按value排序,以及按照key排序的實現方法

python實現字典按value排序,以及按照key排序的實現方法

字典按照value大小進行排序的實現方法:
可以通過用lambda以及sorted()函式結合的方式來實現排序,如下:

升序:
sorted(dict.items(),lambda x,y: cmp(x[1],y[1]))
降序:
sorted(dict.items(),lambda x,y:cmp(x[1],y[1]),reverse=True)
注意sorted()函式處理後,結果不再是一個dict型別了,而是變成了一個list

另外一種比較容易想到的是,將dict中的元素分離出來放到一個list中,對list進行排序,從而間接實現對dict的排序。這個元素可以是key,value或者item.

字典按照dict的key大小進行排序:
方法1:

items = dict.items()
items.sort()
for key,value in items:
print key,value

引用塊內容
方法二:
print key,dict[key] for key in sorted(dict.keys())

實戰中的應用:
sorted(list)返回一個物件,可以用作表示式,原來的List不變,生成一個新的排好序的List物件。
list.sort不會返回物件,改變原有的list。

實戰中我們用一個大list中儲存很多個list,每一個小list都是[score,text1,text2]的形式,比如[29,’i love you’,’i hate you’]。所以大list為[ [29,’i love you’, ‘i hate you’] ,[ 20, ‘Tom ‘, ‘Jack’ ] … ]等等,當我們相對大list按照其中小list的第一個元素的大小進行重排序時,用如下的程式碼:

sorted_list = sorted(big_list, key = lambda x:x[0], reverse=True)