Python中对List进行排序有几种方法,怎样做
Admin 2022-07-13 群英技术资讯 589 次浏览
对List进行排序,Python提供了两个方法
list.sort(func=None, key=None, reverse=False)
Python实例:
>>> list = [2,5,8,9,3] >>> list [2,5,8,9,3] >>> list.sort() >>> list [2, 3, 5, 8, 9]
Python实例:
>>> list = [2,5,8,9,3] >>> list [2,5,8,9,3] >>> sorted(list) [2, 3, 5, 8, 9]
sorted(list)返回一个对象,可以用作表达式。原来的list不变,生成一个新的排好序的list对象。
list.sort() 不会返回对象,改变原有的list。
>>>L = [2,3,1,4] >>>L.sort() >>>L >>>[1,2,3,4]
>>>L = [2,3,1,4] >>>L.sort(reverse=True) >>>L >>>[4,3,2,1]
>>>L = [('b',6),('a',1),('c',3),('d',4)] >>>L.sort(lambda x,y:cmp(x[1],y[1])) >>>L >>>[('a', 1), ('c', 3), ('d', 4), ('b', 6)]
>>>L = [('b',6),('a',1),('c',3),('d',4)] >>>L.sort(key=lambda x:x[1]) >>>L >>>[('a', 1), ('c', 3), ('d', 4), ('b', 6)]
>>>L = [('b',2),('a',1),('c',3),('d',4)] >>>import operator >>>L.sort(key=operator.itemgetter(1)) >>>L >>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
>>>L = [('b',2),('a',1),('c',3),('d',4)] >>>A = [(x[1],i,x) for i,x in enumerate(L)] #i can confirm the stable sort >>>A.sort() >>>L = [s[2] for s in A] >>>L >>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
以上给出了6中对List排序的方法,其中实例3.4.5.6能起到对以List item中的某一项
为比较关键字进行排序.
效率比较:
cmp < DSU < key
通过实验比较,方法3比方法6要慢,方法6比方法4要慢,方法4和方法5基本相当
多关键字比较排序:
>>>L = [('d',2),('a',4),('b',3),('c',2)] >>> L.sort(key=lambda x:x[1]) >>> L >>>[('d', 2), ('c', 2), ('b', 3), ('a', 4)]
我们看到,此时排序过的L是仅仅按照第二个关键字来排的,
如果我们想用第二个关键字排过序后再用第一个关键字进行排序呢?有两种方法
>>> L = [('d',2),('a',4),('b',3),('c',2)] >>> L.sort(key=lambda x:(x[1],x[0])) >>> L >>>[('c', 2), ('d', 2), ('b', 3), ('a', 4)]
>>> L = [('d',2),('a',4),('b',3),('c',2)] >>> L.sort(key=operator.itemgetter(1,0)) >>> L >>>[('c', 2), ('d', 2), ('b', 3), ('a', 4)]
为什么实例8能够工作呢?原因在于tuple是的比较从左到右比较的,比较完第一个,如果
相等,比较第二个
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
文本主要给大家介绍python实现反转字符串的方法,也就是将给定的字符串,逆序输出。很多新手可能会觉得比较困难,其实在Python中有很多方法都可以实现,下面我们一起来看看。
python循环与判断语句怎样写,有哪些注意事项?下文的讲解详细,步骤过程清晰,对大家进一步学习和理解相关知识有一定的帮助。有这方面学习需要的朋友就继续往下看吧!
这篇文章给大家分享的是关于Python中list之间的传值,下文是小编遇到的两个list之间的传值问题,由于改代码因为这个问题卡了半个小时特此记录,希望本文能对大家有启示和帮助,接下来就跟随小编一起来看看吧。
这篇文章主要介绍了python的自变量选择(所有子集回归,后退法,逐步回归),文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
数据可视化是指用图形或表格的方式来呈现数据。图表能够清楚地呈现数据性质, 以及数据间或属性间的关系。本文为大家分享了几个Python数据可视化绘图的实例,感兴趣的可以了解一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008