The standard sorting in Python depends on a comparison operator.  A
quick and easy comparison operator that Python uses for strings is
lexicographic ordering:

    http://en.wikipedia.org/wiki/Lexicographical_order

The quick and dirty rule is: dictionary order, with each character
consistently treated as a character.

As you note, this doesn't "look" right when we're comparing strings
with numbers.  That's a common problem.  Since it's not immediately
clear from the computer's point of view what to do here, Python has no
policy that favors humans.  To make comparison work the way you want
it to, you need to write it explicitly, as it does not come built-in.

See:

    
http://www.codinghorror.com/blog/2007/12/sorting-for-humans-natural-sort-order.html

    
http://stackoverflow.com/questions/4836710/does-python-have-a-built-in-function-for-string-natural-sort
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to