fork(3) download
  1. files = ['PresserInc-1.jpg', 'PresserInc-1_10.jpg', 'PresserInc-1_11.jpg', 'PresserInc-10.jpg', 'PresserInc-2.jpg', 'PresserInc-3.jpg', 'PresserInc-4.jpg', 'PresserInc-5.jpg', 'PresserInc-6.jpg', 'PresserInc-11.jpg']
  2.  
  3. import re
  4.  
  5. def natural_sort(l):
  6. convert = lambda text: int(text) if text.isdigit() else text.lower()
  7. alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ]
  8. return sorted(l, key = alphanum_key)
  9.  
  10. print natural_sort(files)
Success #stdin #stdout 0.02s 4648KB
stdin
Standard input is empty
stdout
['PresserInc-1.jpg', 'PresserInc-1_10.jpg', 'PresserInc-1_11.jpg', 'PresserInc-2.jpg', 'PresserInc-3.jpg', 'PresserInc-4.jpg', 'PresserInc-5.jpg', 'PresserInc-6.jpg', 'PresserInc-10.jpg', 'PresserInc-11.jpg']