字典字符串不可调用“列表”对象:整数

时间:2018-08-31 16:43:34

标签: python

我遇到一个问题,我有一个命令:map-x-to-y = {},并用map-x-to-y [some-string] = counter等值填充。

但是之后,如果我尝试调用sorted,我会不断收到“ list”对象不可调用的错误。

我尝试使用OrderedDict和sorted,但这些都不起作用。 另外,我检查了map-x-to-y的类型,它是“ dict”。

我的目标是按值降序对map-x-to-y进行排序。

1 个答案:

答案 0 :(得分:1)

一些关键点

  1. sorted用于list,而不是dict。除非您知道如何将字典表示为列表。最佳答案是here。我的方法如下
  2. 您需要以某种方式将字典表示为列表
  3. 您还需要交换键值和键值
  4. 通过值,我想您希望返回的列表按地图中值的降序排序

尝试一下

In [12]: humans
Out[12]: {'Ashley': 33, 'Danny': 33, 'Jackie': 12, 'Jenny': 22}

In [13]: sorted([ (y,x) for x,y in humans.items()])[::-1]
Out[13]: [(33, 'Danny'), (33, 'Ashley'), (22, 'Jenny'), (12, 'Jackie')]

说明

  • 使用items将您的字典转换为元组列表
  • 使用列表理解来切换配对
  • 对返回的列表进行排序
  • 逆转