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

https://img2.mukewang.com/5d299fab0001f4a305550550.jpg

慕设计9350821
浏览 815回答 1
1回答

pardon110

用下列方法就好了,如果想按照指定列排序,自定义回调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)  # 降序
打开App,查看更多内容
随时随地看视频慕课网APP