以定制方法按元组值对元组字典排序

2024-04-26 18:10:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究元组的一些python语句。每个元组包含2个整数。元组中的第一个数字被引用为value,第二个数字被称为work。我有3个不同的比较器,我需要按降序排序。这个顺序应该由调用哪个比较器来确定。i、 口述可以用三种不同的方式排序。我已经尽我所能尝试了很多不同的方法来实现这个目标。我可以不使用比较器,只需将其分解为一个列表,并通过对元组进行切片来进行排序,但如果有人能对使用比较器进行排序的语法有所了解,我将不胜感激。我的似乎正确返回cmpWork,但其他2个没有反转。
如果我能根据元组值对dict进行排序,那就太好了。 我有一种

sortedSubjects = sorted(tmpSubjects.iteritems(), key = operator.itemgetter(1), reverse = True)  

但这并不能让我切分元组。
第一次发布noob,所以对任何错误表示歉意。在

^{pr2}$

ps
线

sortedSubjects = sorted(tmpSubjects.iteritems(), key = operator.itemgetter(1), reverse = True)

退货

[('6.00', (16, 8)), ('15.01', (9, 6)), ('1.00', (7, 7)), ('6.01', (5, 3))]  

这几乎就是我所要寻找的,只是我不能按元组中的第二个值排序,也不能按cmpRatio排序。在


Tags: keytrue排序value数字整数语句operator
2条回答

but this doesn't let me slice the tuples

从你的例子开始:

sortedSubjects = sorted(tmpSubjects.iteritems(),
                        key=operator.itemgetter(1),
                        cmp=comparator,   # What about specifying the comparison?
                        reverse=True)

如果你需要分类字典-使用集合.OrderedDict E、 g.按元组的第一个元素排序

 OrderedDict(sorted(smallCatalog.items(), key=lambda e:e[1][0]))
Out[109]: OrderedDict([('6.01', (5, 3)), ('1.00', (7, 7)), ('15.01', (9, 6)), ('6.00', (16, 8))])

相关问题 更多 >