2024-05-19 07:23:05 发布
网友
我有一个python字典,由(名称、值)对组成,如下所示
pyDictionary = {"Bob":12,"Mellissa":12,"roger":13}
我想做的是获得上面字典的一个排序版本,在这个版本中,排序是通过赋予值优先权来完成的,如果两个对的值相同,那么比较应该通过字母顺序比较名称来完成。在
我怎么能在python3.7中实现这个呢?在
您可以将sorted与key一起使用,并从结果到维护顺序构建一个{a1}。在
sorted
key
(最后一步只对python 3.6 <是必需的,在python3.7中,dict是按其键插入时间排序的)
3.6 <
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和{}:
value
您可以使用键函数对dict项进行排序,该函数可以反转键值元组的顺序:
dict(sorted(pyDictionary.items(), key=lambda t: t[::-1]))
您可以将
sorted
与key
一起使用,并从结果到维护顺序构建一个{a1}。在(最后一步只对python
3.6 <
是必需的,在python3.7中,dict是按其键插入时间排序的)或者您也可以使用^{} 分别从每个元组中提取}:
^{pr2}$value
和{您可以使用键函数对dict项进行排序,该函数可以反转键值元组的顺序:
相关问题 更多 >
编程相关推荐