ecr*_*ecr 17 python sorting key
在发现惊人之后sorted(),我再次陷入困境.
问题是我有一个表单的字典,string(key) : integer(value)我需要按其整数值的降序排序,但如果两个元素在哪里有相同的值,那么按键的升序.
一个让它更清晰的例子:
d = {'banana':3, 'orange':5, 'apple':5}
out: [('apple', 5), ('orange', 5), ('banana', 3)]
Run Code Online (Sandbox Code Playgroud)
做了一些研究之后我得到了类似的东西:
sorted(d.items(), key=operator.itemgetter(1,0), reverse=True)
out: [('orange', 5), ('apple', 5), ('banana', 3)]
Run Code Online (Sandbox Code Playgroud)
这是因为它对值和键进行了反向排序.我需要钥匙不要反转.
Lev*_*sky 41
就像是
In [1]: d = {'banana': 3, 'orange': 5, 'apple': 5}
In [2]: sorted(d.items(), key=lambda x: (-x[1], x[0]))
Out[2]: [('apple', 5), ('orange', 5), ('banana', 3)]
Run Code Online (Sandbox Code Playgroud)