2024-10-02 02:43:38 发布
网友
我有一本字典
d={'g':1,'w':1,'h':3}
首先,我想对值排序,然后按键排序,所以最终输出应该如下所示
d={'h':3,'g':1,'w':1}
从python3.6开始,dict是有序的,但是为了确保需要使用来自collections模块的OrderedDict:
collections
OrderedDict
from collections import OrderedDict d={'g':1,'w':1,'h':3} o = OrderedDict(sorted(((k, v) for k, v in d.items()), key=lambda v: (-v[1], v[0]))) print(o)
输出:
OrderedDict([('h', 3), ('g', 1), ('w', 1)])
使用Python 2,您可以通过自定义cmp函数来实现这一点:
def compare(a,b): if a[1] < b[1]: return 1 elif a[1] > b[1]: return -1 else: if a[0] < b[0]: return -1 elif a[0] > b[0]: return 1 else: return 0 d={"h":3,"g":1,"w":1} items = d.items() items = sorted(items, cmp=compare) print items
从python3.6开始,dict是有序的,但是为了确保需要使用来自
collections
模块的OrderedDict
:输出:
使用Python 2,您可以通过自定义cmp函数来实现这一点:
相关问题 更多 >
编程相关推荐