I will look at that merge/unmerge thing
Peter Otten wrote: >> Philippe C. Martin wrote: >> >>> I'm looking for an easy algorithm - maybe Python can help: >>> I start with X lists which intial sort is based on list #1. >>> I want to reverse sort list #1 and have all other lists sorted >>> accordingly. > > One way, using a helper list with indices: > >>>> l1 = ['a','b','c'] >>>> l2 = ['toto','titi','tata'] # 'toto' refers to 'a', 'titi' to b' .... >>>> l3 = ['foo','bar','doe'] # 'foo' refers to 'a' ........ >>>> indices = sorted(range(len(l1)), key=l1.__getitem__, reverse=True) >>>> for items in l1, l2, l3: > ... items[:] = [items[i] for i in indices] > ... >>>> l1 > ['c', 'b', 'a'] >>>> l2 > ['tata', 'titi', 'toto'] >>>> l3 > ['doe', 'bar', 'foo'] > > Another way would be to merge the three lists into one of 3-tuples, sort, > and unmerge, similarly to the DSU pattern -- which raises the question: > why are you using three lists in the first place? > > Peter -- http://mail.python.org/mailman/listinfo/python-list