python数字字符串比较
我有从python数字字符串比较,python,string,types,comparison,Python,String,Types,Comparison,我有从JSON对象加载的数值,因此都是字符串 我在与这些字符串进行数字比较时遇到问题。下面的内容对我来说毫无意义,我希望你们中的一位冠军能够解释 In[2]: print '100' < '45' True In[3]: print '99' < '45' False [2]中的:打印'100''b'>>'a'
JSON
对象加载的数值,因此都是字符串
我在与这些字符串进行数字比较时遇到问题。下面的内容对我来说毫无意义,我希望你们中的一位冠军能够解释
In[2]: print '100' < '45'
True
In[3]: print '99' < '45'
False
[2]中的:打印'100'<'45'
真的
在[3]中:打印'99'<'45'
假的
在比较字符串时,使用Python 2.7通过字符的ascii值对字符串进行比较<代码>'1'的值为49,
'4'
的值为52。所以'1'
就是'4'
<代码>'9'但是是57,所以'9'
是>'4'
如果您想以数字形式比较它们,您可以先将字符串如下所示:
print int('100') < int('45')
print int('100')
它基本上检查字典顺序。
检查文件-
>>'b'>>'a'<'b'
真的
在上面的例子中,a在b之前,因此
'a'你是否验证过你的声明-'599999999999'<'1'是真的我的错,我的意思是这样的'1999'<'5'
。在答案中编辑。谢谢@alokthakurt您提供的文档链接对我非常有帮助。我最终将字典中的所有值转换为float
,尽管我必须使用if循环解释nan
,因为客户端(Chrome)的JSON
解析器抛出了一个nan
错误,我不得不将NaN
替换为None
(请参阅)
>>> 'b' <'a'
False
>>> 'a' < 'b'
True