2024-09-28 03:24:53 发布
网友
在Python3中,int(50)<'2'会导致TypeError,而且应该是这样。然而,在python2.x中,int(50)<'2'返回True(其他数字格式也是如此,但是{}在py2和py3中都存在)。那么,我的问题有几个部分:
int(50)<'2'
TypeError
True
int
str
'5'
(谁认为让这件事开始是个好主意在
我可以想象,原因可能是允许不同类型的对象存储在树状结构中,这种结构在内部使用比较。在
它的工作原理是这样的1。在
>>> float() == long() == int() < dict() < list() < str() < tuple() True
数字比容器小。数字类型将转换为通用类型,并根据其数值进行比较。容器按名称的字母值进行比较。2
从docs:
CPython implementation detail: Objects of different types except numbers are ordered by >their type names; objects of the same types that don’t support proper comparison are >ordered by their address.
不同内置类型的对象按其类型名称的字母顺序进行比较int以“i”开头,str以s开头,因此任何int都比任何{}小。。在
s
回应关于long < int的评论
long < int
不过,您可能是指那些类型的值,在这种情况下,数字比较适用。在
1所有这些都是在Python2.6.5上实现的
感谢克朗帮我解决了这个问题。我以前从没想过要把一个数字和一个dict作比较,而数字的比较是如此明显,很容易被忽视的事情之一。
dict
(谁认为让这件事开始是个好主意在
我可以想象,原因可能是允许不同类型的对象存储在树状结构中,这种结构在内部使用比较。在
它的工作原理是这样的1。在
数字比容器小。数字类型将转换为通用类型,并根据其数值进行比较。容器按名称的字母值进行比较。2
从docs:
不同内置类型的对象按其类型名称的字母顺序进行比较}小。。在
int
以“i”开头,str
以s
开头,因此任何int
都比任何{回应关于
^{pr2}$long < int
的评论不过,您可能是指那些类型的值,在这种情况下,数字比较适用。在
1所有这些都是在Python2.6.5上实现的
感谢克朗帮我解决了这个问题。我以前从没想过要把一个数字和一个
dict
作比较,而数字的比较是如此明显,很容易被忽视的事情之一。相关问题 更多 >
编程相关推荐