用下列方法就好了,如果想按照指定列排序,自定义回调
list.sort(cmp=None,key=None,reverse=False)#py2list.sort(key=None,reverse=False)#py3以元组列表为例,需要注意的是列表元素为可迭代序列,下面是按照第一列里面的数字大小排序
l=[('frag_eroderd_10.png',3282,235,-50,0),('frag_eroderd_103.png',1181,1652,-172.0),('frag_eroderd_1.png',2881,1652,-172.0)]defpreg(el):res=re.search(r'(?:[a-z]+_){1,}(?P\d+).(?:png|jpg|gif)',el[0])returnint(res['number'])ifresisnotNoneelse0l.sort(key=preg)print(l)#效果如下[('frag_eroderd_1.png',2881,1652,-172.0),('frag_eroderd_10.png',3282,235,-50,0),('frag_eroderd_103.png',1181,1652,-172.0)]如果只是按列排,用一个lambda函数就可以了,下面是按第二列排序的效果
l.sort(key=lambdax:x[1])#默认升序l.sort(key=lambdax:x[1],reverse=True)#降序 |