2012-08-27 179 views
-3

我有一個字典,其中包含鍵和值的字符串。我需要按字符串排序,所以當我去dict.values()時,我得到了排序列表。複雜python字典按值排序

的字符串值是這樣的:45_12_something_23

我需要數字作爲數字和字符串作爲字符串進行排序。給定的行保證是字符串或數字(不是混合)。

在python中做到這一點最好的方法是什麼?性能不是問題。

+4

詞典沒有訂單... – Hamish

+0

如果您想要一個排序的鍵列表:編寫您自己的排序方法,將鍵分成幾部分,將其歸一化並將其作爲可排序鍵提供。查看排序的()文檔 –

回答

1

將您的字典轉換爲(鍵,值)對列表。按照你的喜好排序它們。 (或者是你的問題 - 如何做?)然後插入排序(鍵,值)對collections.OrderedDict,這將記住插入順序和迭代時使用相同的順序。

請注意,您不能修改dict你已經有了,這將使新dict你想要的屬性。

+0

是的,那是我一直在採取的方法 - 所以我現在有一個2維列表,我的字符串分解成另一個實際值列表。如何使用sorted()來正確分類這個新的2D列表? –

+0

http://wiki.python.org/moin/HowTo/Sorting/ –

+0

酷,所以我認爲排序(列表,鍵= itemgetter(i))會給我什麼我後。乾杯基斯! –