使用sorted
內置函數而不提供任何可選參數,python如何對字典列表進行排序?python如何對字典列表進行排序?
回答
Python 2中確實試圖提供一種排序(它這樣做對於所有類型),第一基於長度(第一短路類型的字典)中,如果長度是由密鑰相等,則(一個較小的鍵,可進入第一),然後如果所有的鍵都相等,那麼打開值(較小的值首先出現);請參閱dictobject.c
源代碼中的characterize
and dict_compare
functions。
簡短演示:
>>> sorted([{1:2}, {}])
[{}, {1: 2}]
>>> sorted([{1:2}, {0:1}])
[{0: 1}, {1: 2}]
>>> sorted([{1:2}, {1:1}])
[{1: 1}, {1: 2}]
在Python 3,這並不在他們的所有排序;排序類型的字典實在是沒有意義的:
>>> sorted([{}, {}])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: dict() < dict()
看到什麼新的Ordering Comparisons section在Python 3文檔。
如何在「dict」中使鍵相等?如果等於你的意思是不同的'type',那麼我猜它會比較鍵的類型,而不是它們的值。 因此,'int'小於'str','str'小於'tuple'。 –
@AshwiniChaudhary:如果unicode的鍵具有相同的ascii值,則等於'str'鍵。 'int'鍵不能等於'str'鍵,但是它們*可以等於'float'鍵。但是你可以使用相同的鍵定義一個字典(所有鍵都相等),然後比較值。 –
啊!我的壞,一時之間,我認爲我們正在整理一個單一的字典,而不是排序列表的字典。 –
它不會(至少python3):
>>> x = [{4:1}, {3:2}, {1:2}, {5:6}]
>>> x
[{4: 1}, {3: 2}, {1: 2}, {5: 6}]
>>> sorted(x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: dict() < dict()
沒有指定類型的字典的順序合理的默認值,這樣類型的字典是unorderable。
此行爲已從python2更改,因爲比較已在python3中重新編制。在可以比較幾乎所有使用cmp()
的東西之前,這反映了列表的排序。 python3修復了這個問題,cmp()
不存在,並且使用rich comparision方法完成比較,只能做出與真實情況相媲美的事情,或者像cmp(Exception(), 42)
這樣的事情有多大意義?
對於py3x是正確的,不適用於py2x。 –
沒有嘗試python2 :) – mata
- 1. Python按列表中字典的值對列表進行排序
- 2. 如何按Python中字典的姓氏對字典列表進行排序?
- 3. 如何對包含python字典列表的字典進行排序?
- 4. 如何按字典順序對列表進行排序?
- 5. 在Python中對字典進行排序
- 6. Python - 對數字列表進行排序
- 7. 基於Python中的字典值對列表進行排序?
- 8. (Python 3)用字典和列表對電影進行排序
- 9. Python lambda函數根據字典對列表進行排序
- 10. 根據訂購標準對Python字典列表進行排序
- 11. Python:對字典進行排序(字典中的字典)
- 12. 如何對字典進行排序?
- 13. 如何對多個元素的字典列表進行排序
- 14. 如何對字典內的列表進行排序?
- 15. 如何對數值字典列表進行排序?
- 16. 排序Python字典列表
- 17. Python:排序列表字典
- 18. Python:如何對字典數據進行排序和組織
- 19. 如何在Python中對字典進行排序?
- 20. 如何在Python中對字典進行排序
- 21. Python:對列表進行排序
- 22. 如何在列表中對字典對象進行排序,以便在python中比較這些列表3
- 23. 如何根據相對日期值對字典列表進行排序?
- 24. 如何根據列表中的值以降序對字典進行排序?
- 25. 按列表中的值對字典鍵進行排序?
- 26. 用兩個不同的鍵對字典列表進行排序
- 27. 如何按字典順序對字符串進行排序?
- 28. 如何對2D列表進行排序?
- 29. CompareTo如何對列表進行排序?
- 30. 如何對此列表進行排序?
請參閱http://stackoverflow.com/questions/3484293/is-there-a-description-of-how-cmp-works-for-dict-objects-in-python-2 –