【问题标题】:How can I order a dictionary by its values?如何按字典的值排序?
【发布时间】:2020-05-04 07:56:34
【问题描述】:

我正在做一个数据分析项目,我试图以降序排列我的结果,第一次遇到类似问题时,我使用了sorted(dictt.items(), key= lambda x: x[1]),它运行良好。现在,我遇到了一个类型错误:“AttributeError: 'set' object has no attribute 'items'”。

我做错了什么?

Actual output but I want it sorted

【问题讨论】:

  • 这是一个字典:{'one':1, 'two':2, 'three':3} 这是一个集合:{'one', 1, 'two', 2, 'three', 3}dictt 是集合,不是字典
  • 哦,非常感谢。我对所有这些都是新手。我还是得意忘形。

标签: python-3.x dictionary jupyter-notebook data-analysis


【解决方案1】:

对于您正在尝试执行的操作,有一个名为 OrderedDict 的特殊集合: https://docs.python.org/3/library/collections.html#collections.OrderedDict

问题在于,按照您所做的排序方式会返回一组项目而不是字典,并且您必须再次将其变成字典。但是,出于效率原因,标准 dict 不会跟踪条目顺序,因此,如果您真的想要,只需将一组项目插入 OrderedDict,如下所示:

myOrderedDict =  OrderedDict(sorted(dictt.items()))

【讨论】:

  • 这行不通,因为在问题中指出dictt.items() 引发属性错误。
猜你喜欢
  • 2019-09-28
  • 2017-02-02
  • 1970-01-01
  • 1970-01-01
  • 2015-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-09
相关资源
最近更新 更多