pythonlist排序
作者:杭州琦琦妈_120 | 来源:互联网 | 2017-05-14 02:44
实例1:>>>L[2,3,1,4]>>>L.sort()>>>L>>>[1,2,3,4]实例2:>>>L[2,3,1,4]>>>L.sort(reverseTrue)>>>L
实例1: >>>L = [2,3,1,4] >>>L.sort() >>>L >>>[1,2,3,4] 实例2: >>>L = [2,3,1,4] >>>L.sort(reverse=True) >>>L >>>[4,3,2,1] 实例3:对第二个关键字排序 >>>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)] 实例4: 对第二个关键字排序 >>>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)] 实例5: 对第二个关键字排序 >>>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)] 实例6:(DSU方法:Decorate-Sort-Undercorate) >>>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 通过实验比较,方法3比方法6要慢,方法6比方法4要慢,方法4和方法5基本相当 多关键字比较排序: 实例7: >>>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是仅仅按照第二个关键字来排的, 如果我们想用第二个关键字排过序后再用第一个关键字进行排序呢?有两种方法 实例8: >>> 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)] 实例9: >>> 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)] 对于简单的list排序,直接调用内建函数就可以了,但是对于dict的list排序就没有那么直接了,不过,还是有很简洁的办法的,如: >>> ls1 = [{'a' : 1, 'b' : 12}, {'a' : -1, 'b' : 22},{'a' : 12, 'b' : 32},{'a' : 6, 'b' : 42}] >>> ls1.sort(key=lambda obj:obj.get('a')) >>> ls1 [{'a': -1, 'b': 22}, {'a': 1, 'b': 12}, {'a': 6, 'b': 42}, {'a': 12, 'b': 32}] >>> python中dict和list排序 1、list排序 列表的排序是python内置功能,自身含有sort方法 如: >>> s=[2,1,3,0] >>> s.sort() [0, 1, 2, 3] 2、dict排序 对字典的排序,因为每一个项包括一个键值对,所以要选择可比较的键或值进行排序 sorted(iterable[, cmp[, key[, reverse]]] cmp和key一般使用lambda 如: >>> d={"ok":1,"no":2} 对字典按键排序,用元组列表的形式返回 >>> sorted(d.items, key=lambda d:d[0]) [('no', 2), ('ok', 1)] 对字典按值排序,用元组列表的形式返回 >>> sorted(d.items, key=lambda d:d[1]) [('ok', 1), ('no', 2)] 3、元组列表排序 如 >>> li=[(2,'a'),(4,'b'),(1,'d')] >>> li.sort() [(1, 'd'), (2, 'a'), (4, 'b')] 如果字典按项的第一个元素排序的话,可以转换成元组列表来进行 >>> d={"ok":1,"no":2} >>> tt=[tuple(item) for item in d.items()] >>> tt.sort() [('no', 2), ('ok', 1)] 4 其他人的实现,留住备忘 下面是一个结构的例子 >>> class test: def __init__(self,a,b): self.a = a self.b = b >>> test1 = test(5,25) >>> test2 = test(10,15) >>> tests = [test1,test2] >>> sorted(tests,cmp = lambda x,y: cmp(x.a, y.a)) >>> result = sorted(tests,key = lambda d:d.a) 5、 # (IMHO) the simplest approach: def sortedDictValues1(adict): items = adict.items() items.sort() return [value for key, value in items] # an alternative implementation, which # happens to run a bit faster for large # dictionaries on my machine: def sortedDictValues2(adict): keys = adict.keys() keys.sort() return [dict[key] for key in keys] # a further slight speed-up on my box # is to map a bound-method: def sortedDictValues3(adict): keys = adict.keys() keys.sort() return map(adict.get, keys)
推荐阅读
本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ...
[详细]
蜡笔小新 2023-12-14 17:55:18
本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ...
[详细]
蜡笔小新 2023-12-14 17:46:55
篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ...
[详细]
蜡笔小新 2023-12-14 15:18:35
本文介绍了Python中使用字典推导式和循环列表生成字典的方法,包括通过循环列表生成相应的字典,并给出了执行结果。详细讲解了代码实现过程。 ...
[详细]
蜡笔小新 2023-12-14 14:54:09
本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ...
[详细]
蜡笔小新 2023-12-14 14:25:33
本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ...
[详细]
蜡笔小新 2023-12-14 14:01:06
本文介绍了使用Python根据字典中的值进行排序的方法,并给出了实验结果。通过将字典转化为记录项,可以按照字典中的值进行排序操作。实验结果显示,按照值进行排序后的记录项为[('b', 2), ('a', 3)]。 ...
[详细]
蜡笔小新 2023-12-14 13:19:28
本文介绍了在Python中调用同一个类中的方法需要加上self参数,并且规范写法要求每个函数的第一个参数都为self。同时还介绍了如何调用另一个类中的方法。详细内容请阅读剩余部分。 ...
[详细]
蜡笔小新 2023-12-14 12:52:55
本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ...
[详细]
蜡笔小新 2023-12-14 11:27:53
本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ...
[详细]
蜡笔小新 2023-12-14 11:26:56
本文介绍了如何使用Python正则表达式匹配MATLAB的函数语法,包括多行匹配和跨行签名的处理方法。同时,作者还分享了自己遇到的问题和解决方案。 ...
[详细]
蜡笔小新 2023-12-14 09:40:38
本文介绍了Python版Protobuf的安装和使用方法,包括版本选择、编译配置、示例代码等内容。通过学习本教程,您将了解如何在Python中使用Protobuf进行数据序列化和反序列化操作,以及相关的注意事项和技巧。 ...
[详细]
蜡笔小新 2023-12-14 09:27:58
使用Ubuntu中的Python获取浏览器历史记录原文: ...
[详细]
蜡笔小新 2023-12-14 08:57:59
本文介绍了去掉空格的方法,并结合2019独角兽企业招聘Python工程师的标准与实践进行讨论。同时提供了一个转载链接,链接内容为更多相关信息。 ...
[详细]
蜡笔小新 2023-12-14 02:04:37
本文介绍了多因子选股模型在实际中的构建步骤,包括风险源分析、因子筛选和体系构建,并进行了模拟实证回测。在风险源分析中,从宏观、行业、公司和特殊因素四个角度分析了影响资产价格的因素。具体包括宏观经济运行和宏经济政策对证券市场的影响,以及行业类型、行业生命周期和行业政策对股票价格的影响。 ...
[详细]
蜡笔小新 2023-12-13 22:34:00