如何在Python中按部分字符串对字符串列表进行排序?

时间:2013-08-15 04:25:54

标签: python sorting

以下是字典中的密钥列表:

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']

但是我希望它按照'B'之后的数字顺序排列,例如:

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

我该怎么办?

1 个答案:

答案 0 :(得分:2)

使用可选的key参数:

>>> 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']