Python 2使用未记录的ordering,它是作为一种.__cmp__()
特殊方法实现的。
该排序仅在有限的用例集合中才有意义,并且仅存在是因为Python 2试图使 所有事物 都可排序。
Python 3彻底清除了Python的订购故事;.__cmp__()
现在已经不复存在了,只有真正具有自然顺序的类型(例如数字和字符串)现在才支持顺序。对于其他所有内容,您需要明确定义一个顺序。
字典没有自然顺序。如果确实需要对字典进行排序,则需要定义一个对您的用例有意义的显式顺序。如果这意味着仅比较键,则进行比较(例如使用key=sorted
),等等。