Ben Racine <i3enha...@gmail.com> writes: > 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?
I use code like the hack below to sort miscellaneous strings that consist of mixed numerical and non-numerical parts. import re nsk_re = re.compile("([0-9]+)|([^0-9]+)") def numeric_sort_key(x): return [handle_int_nonint(i_ni) for i_ni in nsk_re.findall(x)] def handle_int_nonint(int_nonint_tuple): if int_nonint_tuple[0]: return int(int_nonint_tuple[0]) else: return int_nonint_tuple[1] def numerically_sorted(l): return sorted(l, key=numeric_sort_key) -- http://mail.python.org/mailman/listinfo/python-list