为什么删除字典量级比较?

时间:2014-07-22 18:21:48

标签: python python-3.x

只是好奇,仅此而已。为什么在Python3中删除了字典量级比较(> < >= <=)?删除它们的原因是什么?

例如:dictA > dictB

1 个答案:

答案 0 :(得分:3)

从Python 3中删除了任意比较排序,请参阅Ordering Comparisons in the What's New in Python 3.0 documentation

词典之间没有有意义的自然顺序。 Python 2只是假装在混合列表排序方面表现不错,但这只会引起巨大的混乱。

比较字符串与整数;整数总是小于而不是Python中的字符串:

>>> 10 < "10"
True

许多初学者会尝试将字符串与整数进行比较;使用number = raw_input('Pick a number! ')然后尝试将其与整数进行比较是很自然的。有时它会看起来就好像它正在工作!在Python 3中,现在这是一个错误。

这同样适用于大多数物体;除非他们明确定义比较方法(__lt____gt__等),否则这些类型不可订购。这包括词典。