我試圖通過鍵排序字典,但沒有機會。 這是我的字典:Python:如何按鍵排序字典
result={'1':'value1','2':'value2',...}
我使用Python2.7,我發現這個
keys = result.keys()
keys.sort()
但這不是我所期待的,我有一個未排序的字典。
我試圖通過鍵排序字典,但沒有機會。 這是我的字典:Python:如何按鍵排序字典
result={'1':'value1','2':'value2',...}
我使用Python2.7,我發現這個
keys = result.keys()
keys.sort()
但這不是我所期待的,我有一個未排序的字典。
標準Python字典本質上是無序的。但是,您可以使用collections.OrderedDict
。它保留插入順序,因此,所有你需要做的就是添加鍵/值對所需的順序:
In [4]: collections.OrderedDict(sorted(result.items()))
Out[4]: OrderedDict([('1', 'value1'), ('2', 'value2')])
Python字典是無序的(的定義)
您可以使用OrderedDict代替
sorted(result.iteritems(), key=lambda key_value: key_value[0])
這將輸出排序結果,但字典將保持未排序。如果你想保持字典的順序,使用OrderedDict
其實,如果你排序鍵你可以跳過key=...
部分,因爲那時的迭代項目是按值(什麼NPE的使用首先由鍵後整理在他的回答中)
我會親自去'鍵=拉姆達(KEY,VAL):VAL)'這也是正確的,但恕我直言也更明確 – 2013-03-25 11:48:29
@JonClements在python 3已棄用,所以目前的做法更好 – jamylak 2013-03-25 11:50:09
@jamylak:爲什麼不推薦?任何參考? – 2013-03-25 11:51:19
如果if我有1000對夫婦(關鍵,價值)?? – Imoum 2013-03-25 12:56:06
如果我必須按照「value *」的順序對OrderedDict([('1','value1'),('2','value2')])'進行排序, – 2016-07-08 10:24:43