如何在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
。需要注意的是,一个元素按升序排序,而另一个元素按降序排序(后者在元组排序中优先)