sorting list of complex numbers
Paul Rubin
http
Tue Nov 18 05:41:58 EST 2008
skip at pobox.com writes:
> but how do I then do a secondary sort by the imaginary part,...
> Is there a way to do this using just the key arg, no extra data structures?
Clever solutions involving multiple sorts aside, I think what they
really want you to do is something like (untested):
class mkKey(complex):
def __lt__(self, other):
a = cmp(self.real, other.real)
return a if a else cmp(self.imag, other.imag)
then:
yourlist.sort(key=mkKey)
for fancier structures you'd need a full blown class implementation
with an init method. Either way you end up temporarily allocating a
lot of extra structures, but at least they're not all in memory
simultaneously like in the DSU pattern.
More information about the Python-list
mailing list