使用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 –