2013-03-03 61 views
2

用下面排序python數組?

代碼

arr = [{"name":"joe", "hotdogs":5},{"name":"april", "hotdogs":5},{"name":"ryan", "hot dogs":8}] 

如何在Python排序,如類型的字典數組的元素按名稱排序?

arr = [{"name":"april", "hotdogs":5},{"name":"joe", "hotdogs":5},{"name":"ryan", "hotdogs":8}] 

如何應用一些函數來排序數組中的字典?

+0

您已有17個問題;現在是時候學習[如何用markdown格式化問題](http://meta.stackoverflow.com/editing-help)。 – rds 2013-03-03 17:06:09

+0

@rds非常有用,謝謝! – Setsuna 2013-03-03 17:07:18

+0

這是你的實際數據結構還是一個簡化的例子? – 2013-03-03 17:24:51

回答

5

像這樣:

arr.sort(key=operator.itemgetter('name')) 
+0

+1這絕對是最好的方法。 – hughdbrown 2013-03-03 17:49:02

0

如何

>>> import collections 
>>> collections.OrderedDict(april=5, joe=5, ryan=8) 
OrderedDict([('april', 5), ('joe', 5), ('ryan', 8)] 

或每DSM的評論

>>> collections.OrderedDict([('april', 5), ('joe', 5), ('ryan', 8)]) 
OrderedDict([('april', 5), ('joe', 5), ('ryan', 8)]) 
+1

雖然'OrderedDict'確實保持順序,但它不能與該調用語法一起使用。例如,嘗試'collections.OrderedDict(四月= 5,萊恩= 8,喬= 5)'。問題是這個類傳遞了一個無序的關鍵字參數字典。 – DSM 2013-03-03 17:36:49

+0

跛腳。感謝帝斯曼,我不知道。 – 2013-03-03 18:29:24