I have a list of filenames :
a = ['data_1-0.hamster.raw',
'data_0-0.hamster.raw',
'data_9-1.hamster.raw',
'data_2-0.hamster.raw',
'data_0-1.hamster.raw',
'data_0-10.hamster.raw',
'data_0-2.hamster.raw']
And I want to sort this list such that I have this output:
a = ['data_0-0.hamster.raw',
'data_0-1.hamster.raw',
'data_0-2.hamster.raw',
'data_0-10.hamster.raw',
'data_1-0.hamster.raw',
'data_2-0.hamster.raw',
'data_9-1.hamster.raw']
This is the code that I made :
sorted(a, key=lambda f: int(re.search(r'-(\d+)[^-]*$', f).group(1)))
But I got a bit confused with re syntax and this is what I get:
a = ['data_1-0.hamster.raw',
'data_0-0.hamster.raw',
'data_2-0.hamster.raw',
'data_9-1.hamster.raw',
'data_0-1.hamster.raw',
'data_0-2.hamster.raw',
'data_0-10.hamster.raw']
It seems that it does the job for the number after the hyphen but not for the first number.