Re: Getting sorting order
- From: Peter Otten <__peter__@xxxxxx>
- Date: Mon, 30 Jun 2008 12:06:53 +0200
leodp wrote:
Or provide a better explanation and an example. Do you mean something
like this?
Hi Peter,
a small example:
master=[1,4,3,2]
slave1=['d','c','b','a']
slave2=[1,2,3,4]
master.sort() # this is ok, but does not return infos on how the list
was sorted
slave1.sort(key=_maybe_something_here_referring_to_master_)
slave2.sort(key=_maybe_something_here_referring_to_master_)
Then I should get:
master=[1,2,3,4]
slave1=['d','a','b','c']
slave2=[1,4,3,2]
Hope it is more clear now.
Thanks, leodp
You need a helper list (called master_index in the example below):
[1, 2, 3, 4]master=[1,4,3,2]
slave1=['d','c','b','a']
slave2=[1,2,3,4]
master_index = range(len(master))
master_index.sort(key=master.__getitem__)
master[:] = [master[i] for i in master_index]
slave1[:] = [slave1[i] for i in master_index]
slave2[:] = [slave2[i] for i in master_index]
master
['d', 'a', 'b', 'c']slave1
[1, 4, 3, 2]slave2
If you don't care about list object identity you can use
master = [...] instead of master[:] = [...] etc.
Peter
.
- Follow-Ups:
- Re: Getting sorting order
- From: leodp
- Re: Getting sorting order
- References:
- Getting sorting order
- From: leodp
- Re: Getting sorting order
- From: Peter Otten
- Re: Getting sorting order
- From: leodp
- Getting sorting order
- Prev by Date: Re: Why is recursion so slow?
- Next by Date: Re: what is meaning of "@" in pyhon program.
- Previous by thread: Re: Getting sorting order
- Next by thread: Re: Getting sorting order
- Index(es):