Felix Collins wrote: > Hi All, > does anyone know any cleaver tricks to sort a list of outline numbers. > > An outline number is a number of the form... 1.2.3 > > they should be sorted in the following way... > > 1 > 1.1 > 1.2 > 1.12 > > python's alpha sort (by design) sorts them... > > 1 > 1.1 > 1.12 > 1.2 > > That's no good for me. > I'm planning on splitting the strings into multiple lists of ints and > doing numerical sorts. > > Thanks for any clever ideas that might make it easier.
Use the "key" keyword argument to list.sort(). In [1]: outline = ['1.12', '1.1', '1', '1.2'] In [2]: outline.sort(key=lambda x: map(int, x.split('.'))) In [3]: outline Out[3]: ['1', '1.1', '1.2', '1.12'] -- Robert Kern [EMAIL PROTECTED] "In the fields of hell where the grass grows high Are the graves of dreams allowed to die." -- Richard Harter -- http://mail.python.org/mailman/listinfo/python-list