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

Reply via email to