python数字字符串比较

时间:2016-02-18 18:31:12

标签: python string types comparison

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

我遇到与这些字符串进行数值比较的问题。以下对我没有意义,我希望你们中的一位冠军可以解释..

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

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

使用Python 2.7

2 个答案:

答案 0 :(得分:2)

比较字符串时,它们通过字符的ascii值进行比较。 '1'的值为49,'4'为52.因此'1'为&lt; '4''9''9'但是为57,因此4'是&gt; “int()

如果你想用数字比较它们,你可以先print int('100') < int('45') 字符串,如:

{{1}}

答案 1 :(得分:0)

它基本上检查词典排序。 查看文档here -

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

在上面的示例中,a出现在b之前,因此'a' <'b'为真。但是,反之亦然。同样'1'<'2'。 因此'199999999999' < '5'是正确的,因为1来自5。