How to sort a list? NOT a newbie question.

Michael James Barber mjbarber at ascc.artsci.wustl.edu
Tue Sep 18 05:09:39 EDT 2001


In article <mailman.1000739421.20070.python-list at python.org>,
Skip Montanaro  <skip at pobox.com> wrote:
>
[my question about sorting heterogeneous lists snipped]
>
>Seems to me that you need to convert complex numbers to reals for
>comparison.  That can be done a number of ways.  Some that come immediately
>to mind include:
>
>    * compare them as tuples, e.g., compare 1+2j as (1,2)
>
This is what I wound up using, actually.  For the particular case I was 
interested in, changing representations made sense and was easy to do.  
Naturally, comparing these alternate representations of complex numbers 
is every bit as incorrect mathematically as the direct comparison.

>Which you choose will depend on your application.
>
[example comparison function snipped]
>
There is a definite appeal to this approach.  Raise errors for "wrong" 
comparisons, and have the user define a convention as appropriate.  Of 
course, comparing non-numeric types is arguably wrong as well, but the 
lexicographical sort is so familiar that we don't really notice.  

Thanks for the thought-provoking comment.  I think I'm going to have to 
consider this very carefully before I decide if it's "obvious" or not!
-- 
					Michael J. Barber



More information about the Python-list mailing list