> 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