首页 / PYTHON / Python list列表的排序
Python list列表的排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python list列表的排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2011字,纯文字阅读大概需要3分钟。
内容图文
当我们从数据库中获取一写数据后,一般对于列表的排序是经常会遇到的问题,今天总结一下python对于列表list排序的常用方法:
第一种:内建函数sort()
这个应该是我们使用最多的也是最简单的排序函数了,可以直接对列表进行排序
用法:
list.sort(func=None, key=None, reverse=False(or True))
对于reverse这个bool类型参数,当reverse=False时:为正向排序;当reverse=True时:为方向排序。当然默认为False。
执行完后会改变原来的list
例如:
>>> list = [2,8,4,6,9,1,3] >>> list.sort() >>> list [1, 2, 3, 4, 6, 8, 9]
第二种:序列类型函数sorted()
这个和第一种的差别之处在于,其不会改变原来的list,而是会返回一个对象
用法:
sorted(list)
同样跟第一种方法一样,该函数也含有reverse这个bool类型的参数,当reverse=False时:为正向排序(从小到大);当reverse=True时:为反向排序(从大到小)。当然默认为False。
执行完后会有返回一个新的排序好的list对象
例如:
>>> list = [2,8,4,1,5,7,3] >>> other = sorted(list) >>> other [1, 2, 3, 4, 5, 7, 8]
当然,有时候我们会遇到这种情况,那就是列表里面每一个元素不止一个元素(比如:列表里面,元素为元祖类型),我们除了想对第一个关键字排序之外,还想在第一次的基础上面根据第二个关键字进行排序,那么我们可以使用第三种方法。
第三种:
这种方法其实就是基于第二种sorted()函数排序的扩展。这里需要用到 lambda 表达式。
先看一个例子:
我们想先排序列表list中元素的第一个关键字,然后在第一个元素的基础上排序按第二个关键字进行排序,看结果:
>>> list = [(‘d‘,3),(‘a‘,5),(‘d‘,1),(‘c‘,2),(‘d‘,2)] >>> print sorted(list, key = lambda x:(x[0],x[1])) [(‘a‘, 5), (‘c‘, 2), (‘d‘, 1), (‘d‘, 2), (‘d‘, 3)]
还有一种:
今天遇到了这么一个问题,就是遇到一个字符串的处理问题,比如说 f10 得排在 f2 的后面。找到了这么一种方法,供参考:
参考地址:http://blog.csdn.net/houyj1986/article/details/22966799
#encoding=utf-8 print ‘中国‘ #根据字符串中的数字排序,如f10应该在f2后面 import re re_digits = re.compile(r‘(\d+)‘) def emb_numbers(s): pieces=re_digits.split(s) pieces[1::2]=map(int,pieces[1::2]) return pieces def sort_strings_with_emb_numbers(alist): aux = [(emb_numbers(s),s) for s in alist] aux.sort() return [s for __,s in aux] def sort_strings_with_emb_numbers2(alist): return sorted(alist, key=emb_numbers) filelist=‘file10.txt file2.txt file1.txt‘.split() print filelist print ‘--DSU排序‘ print sort_strings_with_emb_numbers(filelist) print ‘--内置DSU排序‘ print sort_strings_with_emb_numbers2(filelist)
打印结果如下:
中国 [‘file10.txt‘, ‘file2.txt‘, ‘file1.txt‘] --DSU排序 [‘file1.txt‘, ‘file2.txt‘, ‘file10.txt‘] --内置DSU排序 [‘file1.txt‘, ‘file2.txt‘, ‘file10.txt‘]
原文:http://www.cnblogs.com/ShaunChen/p/6205330.html
内容总结
以上是互联网集市为您收集整理的Python list列表的排序全部内容,希望文章能够帮你解决Python list列表的排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。