【python sort、sorted高级排序技巧】教程文章相关的互联网学习教程文章

在python中排序多级dict【代码】

我需要通过’sales_min’键的值对以下dict进行排序:mydict = {'NATION': {'sales_max': 1000, 'sales_min': 500, ...}, 'LOCAL': {'sales_max': 250, 'sales_min': 0, ...},'REGION': {'sales_max': 500, 'sales_min': 250, ...}, ... }我没有找到一个很好的方法来做到这一点.任何建议表示赞赏. 谢谢.解决方法: >>> collections.OrderedDict(sorted(mydict.iteritems(), key=lambda (k, v):v['sales_min'])) OrderedDict([('LOCA...

使用不同字段的不同顺序对python中的元组进行排序【代码】

参见英文答案 > How to write Python sort key functions for descending values 6个假设我们有一个5元组的列表:(a, b , c, d, e)让列表成为student_tuples. 我希望对列表排序不同字段的不同订单. 下面提到的命令sorted(student_tuples, key=itemgetter(2,4,0,1))将按所有字段的升序对列表进行排序. 下面提到的命令sorted(student_tuples, key=itemgetter(2,4,0,1), reverse=true)将按降序对所...

python – 按字符值对字典进行排序,然后在值相等的情况下对其键进行排序,然后输出列表【代码】

map={"a":5, "b":2, "c":7, "d":5, "e":5}输出应该是:['c', 'a', 'd', 'e', 'b']因此,代码应首先按其值按降序排列字典,然后如果其值相同,则应按键按升序排序.到目前为止我有……newmap=map newmap=sorted(newmap.iteritems(), key=operator.itemgetter(1,0),reverse=True) print newmap这给了我输出[(‘c’,7),(‘e’,5),(‘d’,5),(‘a’,5),(‘b’,2)].所以,我需要按升序获得e,d,a …而不会弄乱各种数字.我该怎么做呢?解决方法...

python – 根据另一个DICTIONARY对LIST进行排序【代码】

我有一个列表和一本字典:list1 = ["a", "b", "c", "d"]dict1 = {"a": 4,"b": 3,"c": 5,"d": 9,"e": 2,"f": 8 }我想要做的是根据dict1中的相应值对list1进行排序. 对于上面的例子,我希望列表成为[“b”,“a”,“c”,“d”],根据它们的值进行排序. 我知道它应该是……list2 = sorted(list1, key=dict1[x])但我被卡住了:(( 任何帮助将非常感激解决方法:关键参数应该是一个函数. 例如,使用绑定方法dict .__ getitem__或dict.get:>>...

python – 字典到CSV文件:列的排序【代码】

我正在尝试将字典列表导出到.csv文件:keys = hist[0].keys() with open(file, 'wt') as output_file:dict_writer = csv.DictWriter(output_file, keys, lineterminator='\n')dict_writer.writeheader()dict_writer.writerows(hist)我希望字典中的最后一个键是列中的第一个键. 我的词典列表(hist)是:[{'RSD': '-', 'GBP': '0.500409', 'Date': '2008-04-05'}, {'RSD': '-', 'GBP': '0.500409', 'Date': '2008-04-06'}, {'RSD': '-...

在Python中,如何按字母顺序按字典的某个值对字典列表进行排序?【代码】

好的,这就是我要做的…我知道itemgetter()排序可以按字母排序很容易,但如果我有这样的东西:[{‘Name’:’TOTAL’, ‘Rank’:100},{‘Name’:’Woo Company’, ‘Rank’:15},{‘Name’:’ABC Company’, ‘Rank’:20}]我想按字母顺序排序(按名称)包括条件:名称:’TOTAL’应该在序列的最后列出,如下所示:[{‘Name’:’ABC Company’, ‘Rank’:20},{‘Name’:’Woo Company’, ‘Rank’:15},{‘Name’:’TOTAL’, ‘Rank’:100}]...

根据值列表重新排序python中的字典【代码】

让我们考虑一下字典:sample_dict={1:'r099',2:'g444',3:'t555',4:'f444',5:'h666'}我想按照包含我想要的字典键顺序的列表指定的顺序重新排序这个字典.让我们说所需的订单列表是:desired_order_list=[5,2,4,3,1]所以,我希望我的字典看起来像这样:{5:'h666',2:'g444',4:'f444',3:'t555',1:'r099'}如果我能得到一个很好的值列表.意思是,结果可能是这样的:['h666','g444','f444','t555','r099']我如何以最简单的方式实现这一目标?...

Python 排序算法【代码】

Python 排序算法 冒泡排序 冒泡排序多次遍历列表,它比较相邻的项并交换那些无序的项。 def bubblesort(nlist):for i in range(len(nlist)):for j in range(len(nlist)-1):if nlist[j+1]<nlist[j]:nlist[j],nlist[j+1]=nlist[j+1],nlist[j] return nlist选择排序 选择排序每次遍历列表只做一次交换,一个选择排序在它遍历时寻找最大的值,并在完成遍历后将其放在正确的位置。 def selectsort(nlist):for i in range(len(nlist)):tm...

python基于另一个列表的顺序的属性对对象列表进行排序【代码】

大家好,我需要你的python列表排序帮助. 这是事情: 我有两个列表:一个是整数列表,另一个是对象列表,第二个对象列表的属性id也是一个整数,我想根据id属性对对象列表进行排序,在第一个列表中出现了相同id的顺序,这是一个例子: 我得了= [1,2,3,4,5] 和b = [o,p,q,r,s],其中o.id = 2,p.id = 1,q.id = 3,r.id = 5,s.id = 4 并且我希望我的列表b按照其ID出现在列表a中的顺序排序,如下所示:sorted_b = [p,o,q,s,r] 当然,我可以通过使用...

python – 按第一个元素对元素列表进行排序,但如果按第二个元素进行等级排序【代码】

我已经构建了一个列表[[13,“b”],[10,“b”],[10,“a”,],[4,“c”],[1,“d”]]通过两个元素列表中的第一个值.这是我能做的部分.我不知道的是,如果两个元素是相同的,那么我想按字母顺序对它进行排序.我用来对第一个列表进行排序的方法是通过第一个元素反转排序列表.然而,这使[10,“b”]在[10,“a”]之前出现,但我想在“b”之前“a”.有没有办法按降序编写第一个元素排序,如果是平局,按第二个元素按字母顺序排序?解决方法:这有效:...

python – 在字符串中的数值后排序列表【代码】

我有一个列表,其中每个项目的格式为“title,runtime”,例如“蓝鸟,4005” 我如何根据每个项目的字符串的运行时部分在Python中对该列表进行排序? 有没有办法在不使用正则表达式的情况下执行此操作?解决方法: words_list = ["Bluebird, 4005", "ABCD, 1", "EFGH, 2677", "IJKL, 2"] print sorted(words_list, key = lambda x: int(x.split(",")[1])) # ['ABCD, 1', 'IJKL, 2', 'EFGH, 2677', 'Bluebird, 4005']

59-合并两个排序链表-LeetCode21(python)【代码】

题目描述 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 思路 官方题解之迭代:1.使用哨兵节点prehead,易于之后返回合并后的链表;2.两个链表都是有序的,维护一个pre指针,调整它的next指针;从l1和l2的当前节点中选择较小的一个接在pre指针的后面,同时将其指针向后移。3.在循环终止时,l1和l2中最多有一个非空,且该链表中...

Pythonic以棘手的顺序对字典列表进行排序【代码】

我有一个id列表,在适当的oder中排序:ids = [1, 2, 4, 6, 5, 0, 3]我还有一个字典列表,以一些随机的方式排序:rez = [{'val': 7, 'id': 1}, {'val': 8, 'id': 2}, {'val': 2, 'id': 3}, {'val': 0, 'id': 4}, {'val': -1, 'id': 5}, {'val': -4, 'id': 6}, {'val': 9, 'id': 0}]我的意图是以对应于ids的方式对rez列表进行排序:rez = [{'val': 7, 'id': 1}, {'val': 8, 'id': 2}, {'val': 0, 'id': 4}, {'val': -4, 'id': 6}, {'va...

python – 模仿排序中的数组交换【代码】

l = [0, 1, 3, 2]l2 = ['foo', 3, 'bar', 10]如果我说排序(l),我会得到[0,1,2,3].它将交换最后两个元素. 如何将相同的行交换应用于l2?即,我希望l2成为[‘foo’,3,10,’bar’].解决方法:您可以使用zip,unpack tuple和list comprehension来实现结果:[y for x, y in sorted(zip(l, l2))]

合并Python中的两个文件并进行排序【代码】

我正在尝试创建一个组合2个文本文件的函数,并在将结果写入新文件之前对它们进行排序.我已经阅读了有关排序文件的现有线程,以及有关合并文件的线程,但我找不到能够回答我的问题的线程.File1: 12:24:00: 14, 15, 16 20:13:09: 1, 2, 3File2: 08:06:02: 43, 54, 10 15:16:05: 6, 2, 12而期望的输出将是这样的:NewFile: 20:13:09: 1, 2, 3 15:16:05: 6, 2, 12 12:24:00: 14, 15, 16 08:06:02: 43, 54, 10我最初尝试将两个文件的内容合...