为了账号安全,请及时绑定邮箱和手机立即绑定

想问一下,怎么用python对这种数据进行排序

想问一下,怎么用python对这种数据进行排序

慕设计9350821 2019-07-13 17:10:22
查看完整描述

1 回答

?
pardon110

TA贡献1038条经验 获得超227个赞

用下列方法就好了,如果想按照指定列排序,自定义回调

list.sort(cmp=None, key=None, reverse=False)  #py 2
list.sort(key=None, reverse=False)    # py 3

以元组列表为例,需要注意的是列表元素为可迭代序列,下面是按照第一列里面的数字大小排序

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

def preg(el):
    res = re.search(r'(?:[a-z]+_){1,}(?P<number>\d+).(?:png|jpg|gif)', el[0])
    return int(res['number']) if res is not None else 0

l.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=lambda x: x[1])                # 默认升序
l.sort(key=lambda x: x[1],reverse=True)  # 降序


查看完整回答
反对 回复 2019-07-13
  • 1 回答
  • 0 关注
  • 787 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信