Python字典按值降序、相同值按键降序的lambda实现方法
解决方案
你原来的代码仅指定了按字典值排序,值相等时未定义排序规则,会保留原字典的键顺序,因此不符合要求。
只需修改lambda函数,返回包含两个排序维度的元组即可:第一维度为字典值,第二维度为字典键,配合已有的reverse=True参数,就可以实现「先按值降序,值相等时按键降序」的规则。
修改后的完整代码:
dict(sorted(t.items(), reverse=True, key=lambda item: (item[1], item[0])))
运行后值相等的元素会自动按键的降序排列,你标注的值为4的部分会显示为2: 4, 1: 4,完全符合预期要求。
如果需要调整全局排序规则,也可以将lambda改写为lambda item: (-item[1], -item[0])后移除reverse=True参数,两种写法效果完全一致。
内容的提问来源于stack exchange,提问作者Pietroos
相关产品推荐
相关产品推荐

