如何按键升序和值降序对字典进行排序?

How do I sort a dictionary by key ascending & value descending?

我想按如下方式对字典进行排序:

来自

unsorted_list :  {'F': 3, 'A': 1, 'B': 2, 'C': 2, 'E': 2, 'D': 1,}

sorted_list :  {'D': 1, 'A': 1, 'E': 2, 'C': 2, 'B': 2, 'F': 3,}

所以,

  1. 然后按值升序排序,
  2. 按键降序排序

如何通过 python 执行此操作?

字典保留插入顺序,因此如果您想 re-order 它们,您需要构建一个新的字典,以所需的顺序插入项目。您可以通过对字典的 items() 进行排序然后将结果传递给 dict():

来轻松完成此操作
>>> d = {'F': 3, 'A': 1, 'B': 2, 'C': 2, 'E': 2, 'D': 1,}
>>> dict(sorted(d.items(), key=lambda i: (-i[1], i[0]), reverse=True))
{'D': 1, 'A': 1, 'E': 2, 'C': 2, 'B': 2, 'F': 3}

请注意,如果字典排序对您的用例很重要,您可能需要使用 OrderedDict,它对重新排列项目有更强大的支持 in-place。