George Sakkis wrote:
s.sort(cmp=lambda x,y: 0 if x==y else -1 if x.startswith(y) else+1 if y.startswith(x) else cmp(x,y))
Probably not what you had in mind ... >>> s ['a', 'bc', 'bd', 'bcb', 'ba', 'ab'] >>> maxlen = max(len(si) for si in s) >>> def k(si): return si+'z'*(maxlen-len(si)) ... >>> sorted(s,key=k) ['ab', 'a', 'ba', 'bcb', 'bc', 'bd'] Cheers, Alan Isaac -- http://mail.python.org/mailman/listinfo/python-list