按优先级排序Python字典

2024-05-19 07:23:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python字典,由(名称、值)对组成,如下所示

pyDictionary = {"Bob":12,"Mellissa":12,"roger":13}

我想做的是获得上面字典的一个排序版本,在这个版本中,排序是通过赋予值优先权来完成的,如果两个对的值相同,那么比较应该通过字母顺序比较名称来完成。在

我怎么能在python3.7中实现这个呢?在


Tags: 版本名称字典排序顺序字母bob优先权
2条回答

您可以将sortedkey一起使用,并从结果到维护顺序构建一个{a1}。在

(最后一步只对python 3.6 <是必需的,在python3.7中,dict是按其键插入时间排序的)


from collections import OrderedDict
d = {"Mellissa":12, "roger":13, "Bob":12}

OrderedDict(sorted(d.items(), key=lambda x: (x[1], x[0])))
# dict(sorted(d.items(), key=lambda x: (x[1], x[0]))) # for Python 3.7
# [('Bob', 12), ('Mellissa', 12), ('roger', 13)]

或者您也可以使用^{}分别从每个元组中提取value和{}:

^{pr2}$

您可以使用键函数对dict项进行排序,该函数可以反转键值元组的顺序:

dict(sorted(pyDictionary.items(), key=lambda t: t[::-1]))

相关问题 更多 >

    热门问题