0

I want to order a list of strings:

MyList = ['dataset1', 'dataset3','dataset2','dataset10','dataset100','dataset11']

When I use sorted function

X = sorted(MyList)

I get

['dataset1', 'dataset10','dataset100','dataset11','dataset2','dataset3']

I want to get

['dataset1', 'dataset2','dataset3','dataset10','dataset11','dataset100']

Thank you in advance for your answers

Arrais
  • 21
  • 5

1 Answers1

0

The issue is that sort, when passed in strings, uses string comparison. You could strip out the dataset, then just sort using integers instead

X = sorted(MyList, key=lambda x: int(x.replace("dataset","")))
mattsap
  • 3,790
  • 1
  • 15
  • 36