我有从JSON
对象加载的数值,因此都是字符串。
我遇到与这些字符串进行数值比较的问题。以下对我没有意义,我希望你们中的一位冠军可以解释..
In[2]: print '100' < '45'
True
In[3]: print '99' < '45'
False
使用Python 2.7
答案 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。