我有一个值字典,我想根据自己定义的比较对其进行排序。我知道你不会整理字典。以下是重要代码:
def cmpFirstVals(tup1,tup2):
if tup1[0] > tup2[0]:
return True
else:
return False
def cmpSecondVals(tup1,tup2):
if tup1[1] > tup2[1]:
return True
else:
return False
所以这两个比较函数接受两个int的两个元组。它比较两个元组,如果第一个元组更高,则返回true;如果使用第二个比较器,则(0,4)将高于(0,3)。同样
^{pr2}$会返回True。在
我的dict是用字符串作为键和两个int元组作为值构建的:
d = {'objA':(1,12),'objB':(13,3)} //etc etc etc
我知道可以对list d.items()进行排序,我最终会用排序后的列表中的前三项构造dict,但是我需要使用这些比较器进行排序。在
我需要知道如何通过这些比较器进行排序?在
另外,请注意,如果两个元组的索引值相同,则比较器将返回false。(即cmpFirstVals((4,2),(4,3))将返回false)
呃。。。在
二进制比较器在2.x中被弃用,在3.x中被删除
如果希望排序后的列表只包含值元组:
如果需要dict中值的完整元组:
^{pr2}$编辑(根据您的评论):
key接受函数。所以你可以这样做:
相关问题 更多 >
编程相关推荐