在Python字典中按值(降序)和键(升序)排序

pdu*_*ois 6 python sorting

我有以下词典:

mydict1 = {1: 11, 2: 4, 5: 1, 6: 1}
mydict2 = {1: 1, 5: 1}
Run Code Online (Sandbox Code Playgroud)

对于他们中的每一个,我想首先按值(降序)然后按键(递增)进行排序,产生以下输出:

out_dict1 = [((1, 11), (2, 4), (5, 1), (6, 1)]
out_dict2 = [(1, 1), (5, 1)]
Run Code Online (Sandbox Code Playgroud)

这样做的方法是什么?

我用过这个,但是上面两个案例无法得到结果:

sorted(mydict.items(), key=lambda x: (x[1],x[0]))
Run Code Online (Sandbox Code Playgroud)

the*_*eye 8

由于您希望按降序对值进行排序,只需取消传递给key参数的函数中值的值,就像这样

sorted(mydict.items(), key=lambda x: (-x[1], x[0]))
Run Code Online (Sandbox Code Playgroud)

现在,值将按降序排序,如果两个值相等,则将考虑键,并按升序对它们进行排序.