[Tutor] Logical Sorting

Marc Poulin marc_a_poulin at yahoo.com
Fri Jul 7 21:52:56 CEST 2006


I did a Google search for "python numeric sort" and
found

http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/135435

It seems to do what you want.

Marc

--- Evan Klitzke <eklitzke at gmail.com> wrote:

> Hi,
> 
> I am trying to sort a list of directories that
> correspond to kernel
> sources under /usr/src/linux.  I wrote some code
> that gets a list like
> this:
> ['linux-2.6.9-gentoo-r4',
> 'linux-2.6.16-gentoo-r11/',
> 'linux-2.6.16-gentoo-r7/']
> 
> When I sort the list, I want it to go from oldest
> (lowest version) to
> newest, so the sorted list should look like this:
> ['linux-2.6.9-gentoo-r4', 'linux-2.6.16-gentoo-r7/',
> 'linux-2.6.16-gentoo-r11/']
> 
> The problem is that since the built in string
> comparisons compare
> character by character, so the sort puts 2.6.16
> before 2.6.9, and -r11
> before -r7.  This is obviously not what I want.  My
> question is: are
> there any modules or built in methods that will do a
> logical sort on a
> list like this, and sort it the way I want, or will
> I have to write my
> own sorting function?
> 
> -- Evan Klitzke
> 
> P.S. I know that the simplest way is just to use ls
> to sort by time,
> but it is not necessarily true that older kernel
> versions have an
> older time stamp :-)
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


More information about the Tutor mailing list