我有一个值字典,我想根据我自己定义的比较进行排序。我知道你不能对字典进行排序。这是重要的代码:
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
所以这两个比较函数接受两个整数的两个元组。它比较两个元组,如果第一个更高,则返回 true,因此如果使用第二个比较器,则 (0,4) 将高于 (0,3)。同样地,
cmpFirstVals((4,2),(2,2))
将返回 True。
我的 dict 是用字符串作为键和两个 int 元组作为值构建的:
d = {'objA':(1,12),'objB':(13,3)} //etc etc etc
我知道可以对列表 d.items() 进行排序,我最终会用排序列表中的前三项构建一个 dict,但我需要使用这些比较器进行排序。
我需要知道如何通过这些比较器进行排序?
另外,请注意,如果两个元组具有相同的索引值,比较器将返回 false。(即 cmpFirstVals((4,2),(4,3)) 将返回 false)