Steven D'Aprano wrote: > You are confusing mathematical ordering with sorting a list. Here, I will > sort some mixed complex and real numbers for you. If you look at them > closely, you will even be able to work out the algorithm I used to sort > them. > > 1 > 1+0j > 1+7j > 2 > 2+3j > 3+3j > 3-3j > 3+4j > 4 > 4+2j
It's clear which algorithm you used to sort these: py> lst = [3+3j, 3+4j, 1+7j, 2, 3-3j, 4, 4+2j, 1, 1+0j, 2+3j] py> def complex2tuple(c): ... c = complex(c) ... return c.real, c.imag ... py> for item in sorted(lst, key=complex2tuple): ... print item ... 1 (1+0j) (1+7j) 2 (2+3j) (3-3j) (3+3j) (3+4j) 4 (4+2j) What isn't clear is that this should be the default algorithm for sorting complex numbers. STeVe -- http://mail.python.org/mailman/listinfo/python-list