python数字字符串比较

Bri*_*ach 4 python string comparison types

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

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

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

In[3]: print '99' < '45'
False
Run Code Online (Sandbox Code Playgroud)

使用 Python 2.7

Eri*_*ouf 6

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

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

print int('100') < int('45')
Run Code Online (Sandbox Code Playgroud)

  • 我最终将字典中的所有值转换为“float”,尽管我必须使用 if 循环来解释“nan”,因为客户端(Chrome)上的“JSON”解析器会抛出“NaN”错误,我必须将“NaN”替换为“None”(请参阅​​http://stackoverflow.com/questions/15228651/how-to-parse-json-string-containing-nan-in-node-js) (2认同)