只是好奇,仅此而已。为什么在Python3中删除了字典量级比较(> < >= <=
)?删除它们的原因是什么?
例如:dictA > dictB
答案 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__
等),否则这些类型不可订购。这包括词典。