如何在Python中对字符串作为键、整数作为值的字典进行排序

如何在Python中对字符串作为键、整数作为值的字典进行排序,python,sorting,dictionary,key-value,Python,Sorting,Dictionary,Key Value,我想把一个措辞分类如下: dic={“周一”:1,“周二”:1,“周三”:10,“周四”:5,“周五”:10,“周六”:11,“周日”:11} 我正努力做到: dic={“周六”:11,“周日”:11,“周五”:10,“周三”:10,“周四”:5,“周一”:1,“周二”:1} 所以我试了一下: sortedPairs=sorted(dic.items(),key=lambda x:(x[1],x[0]),reverse=True) 它似乎在起作用,但出于某些原因,它从未对这两种情况进行排序,我一

我想把一个措辞分类如下:

dic={“周一”:1,“周二”:1,“周三”:10,“周四”:5,“周五”:10,“周六”:11,“周日”:11}

我正努力做到:

dic={“周六”:11,“周日”:11,“周五”:10,“周三”:10,“周四”:5,“周一”:1,“周二”:1}

所以我试了一下:

sortedPairs=sorted(dic.items(),key=lambda x:(x[1],x[0]),reverse=True)

它似乎在起作用,但出于某些原因,它从未对这两种情况进行排序,我一直有这样的想法:

{“周六”:11,“周日”:11,“周五”:10,“周三”:10,“周四”:5,“周二”:1,“周一”:1}


如果有人能帮我,那就太棒了

您需要在当天翻转排序顺序。由于不能使用
-
比较字符串,因此应删除
reverse=True
并添加
-x[1]

sortedPairs = sorted(dic.items(), key=lambda x: (-x[1], x[0]))
现在是什么

[('saturday', 11), ('sunday', 11), ('friday', 10), ('wednesday', 10), ('thursday', 5),
 ('monday', 1), ('tuesday', 1)]
如果您想要一个dict返回,请使用
dict
,但它将只在Python>=3.7上保持排序

print(dict(sortedPairs))
# {'saturday': 11, 'sunday': 11, 'friday': 10, 'wednesday': 10, 'thursday': 5, 
#  'monday': 1, 'tuesday': 1}

接近。您可以尝试
key=lambda x:(-x[1],x[0])
而不使用
reverse=True
。需要注意的是,一个元素按升序排序,而另一个元素按降序排序(后者在元组排序中优先)