On Thu, Apr 8, 2010 at 4:01 PM, Joaquin Abian <gatoyga...@gmail.com> wrote: > On Apr 9, 12:52 am, Ben Racine <i3enha...@gmail.com> wrote: >> I have a list... >> >> ['dir_0_error.dat', 'dir_120_error.dat', 'dir_30_error.dat', >> 'dir_330_error.dat'] >> >> I want to sort it based upon the numerical value only. >> >> Does someone have an elegant solution to this? > > not sure about elegance, but my two cents: > >>> mylist = ['dir_0_error.dat', 'dir_120_error.dat', 'dir_30_error.dat', >>> 'dir_330_error.dat'] >>> mylist = [(int(item.split('_')[1]), item) for item in mylist] >>> mylist.sort() >>> mylist = [item for idx, item in mylist] >>> mylist > > ['dir_0_error.dat', 'dir_30_error.dat', 'dir_120_error.dat', > 'dir_330_error.dat']
At least conceptually, that's how list.sort() with a key= argument works internally (i.e. via Schwartzian transform). Cheers, Chris -- http://blog.rebertia.com -- http://mail.python.org/mailman/listinfo/python-list