python 数字字符串比较

python numeric string comparison

我有从 JSON 对象加载的数值,因此都是字符串。

我在与这些字符串进行数值比较时遇到问题。以下内容对我来说毫无意义,我希望你们中的一位冠军能解释一下..

In[2]: print '100' < '45'
True

In[3]: print '99' < '45'
False

使用Python 2.7

比较字符串时,它们是按字符的 ascii 值进行比较的。 '1' 的值为 49,而 '4' 的值为 52。因此 '1' 为 < '4''9' 然而是 57,所以 '9' 是 > '4'.

如果你想在数字上比较它们,你可以先 int() 字符串,例如:

print int('100') < int('45')

它主要检查字典顺序。 检查文档 here -

>>> 'b' <'a'
False
>>> 'a' < 'b'
True

在上面的例子中,a 在 b 之前,因此 'a' <'b' 为真。但是,反之亦然。同样'1'<'2'。 因此 '199999999999' < '5' 为真,因为 1 在 5 之前。