Search code examples
pythonstringtypescomparison

python numeric string comparison


I have numerical values that are loaded from a JSON object and are therefore all strings.

I am having issues with making numerical comparisons with these strings. The following makes no sense to me and I was hoping one of you champions could explain..

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

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

Using Python 2.7


Solution

  • When comparing strings they're compared by the ascii value of the characters. '1' has a value 49, and '4' is 52. So '1' is < '4'. '9' however is 57, so '9' is > '4'.

    If you want to compare them numerically you could just int() the strings first like:

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