0

Here is a list of key from a dictionary:

bandlist = ['B28', 'B26', 'B11', 'B21', 'B20', 'B7', 'B13', 'B3', 'B19', 'B8', 'B1']

sorted(bandlist) == ['B1', 'B11', 'B13', 'B19', 'B20', 'B21', 'B26', 'B28', 'B3', 'B7', 'B8']

But I want it to be arranged in the order of the number after 'B', such as:

['B1', 'B3', 'B7', 'B8', 'B11', 'B13', 'B19', 'B20', 'B21', 'B26', 'B28']

How can I do?

maomaoto
  • 25
  • 1
  • 5
  • There's also http://stackoverflow.com/questions/4287209/sort-list-of-strings-by-integer-suffix-in-python – lmjohns3 Aug 15 '13 at 04:41

1 Answers1

2

Use optional key argument:

>>> bandlist = ['B28', 'B26', 'B11', 'B21', 'B20', 'B7', 'B13', 'B3', 'B19', 'B8', 'B1']
>>> sorted(bandlist, key=lambda x: int(x[1:]))
['B1', 'B3', 'B7', 'B8', 'B11', 'B13', 'B19', 'B20', 'B21', 'B26', 'B28']
falsetru
  • 357,413
  • 63
  • 732
  • 636