Possible Duplicate:
How does Python compare string and int?
An intern was just asking me to help debug code that looked something like this:
widths = [image.width for image in images]
widths.append(374)
width = max(widths)
…when the first line should have been:
widths = [int(image.width) for image in images]
Thus, the code was choosing the string ‘364’ rather than the integer 374. How on earth does python compare a string and an integer? I could understand comparing a single character (if python had a char datatype) to an integer, but I don’t see any straightforward way to compare a string of characters to an integer.
Python 2.x compares every built-in type to every other. From the docs:
This “arbitrary order” in CPython is actually sorted by type name.
In Python 3.x, you will get a
TypeErrorif you try to compare a string to an integer.