任务
对形如d1_1_1.bmp的标签进行排序,要求按照标签中三个数字按照升序排序,排序后结果如下
方法
使用sort函数代码如下,要排序的列表名为items
items.sort(key = lambda x: (int(x.split('_')[0][1:]), int(x.split('_')[1]), int(x.split('_')[2])))
解释
用lamdba函数指定排序的依据,如果需要多个关键字作为依据进行排序,可以用形如 lamdba x : (key1, key2, …) 的方式指定。在上面的代码中三个关键字是int(x.split(’’)[0][1:]),int(x.split(’’)[1]),int(x.split(’_’)[3]),以第一个关键字为例进行解释。首先需要将标签根据"_“进行分割,即x.split(’_’),然后先按第一个数字进行排序,取分割后的第一部分x.split(’_’)[0],再去掉数字前的"d”,x.split(’_’)[0][1:]。