排序Dict会抛出一个错误 - python

时间:2016-08-31 11:09:53

标签: python

我正在学习python并尝试以最简单的方式排序dicts并抛出错误

d = {'a':10,'b':1,'c':22}
print (d.items())

t = d.items()
t.sort()
print (t)

它引发了我以下错误

dict_items([('b', 1), ('a', 10), ('c', 22)])
Traceback (most recent call last):
  File "/Users/bash/Downloads/n.py", line 5, in <module>
    t.sort()
AttributeError: 'dict_items' object has no attribute 'sort'

是的,我用谷歌搜索并且stackoverflow没有给出我正在寻找的结果所以如果你不投票这个问题并且如果可能的话给出答案那就太好了。

2 个答案:

答案 0 :(得分:4)

dict没有public class Organisation { public int Id { get; set; } public string Name { get; set; } public virtual ICollection<Location> Locations { get; set; } } public class Location { public int Id { get; set; } public string Name { get; set; } public bool IsHqLocation { get; set; } public int OrganisationId { get; set; } public Organisation Organisation { get; set; } } 属性。您可以使用sort按键对其进行排序:

sorted

答案 1 :(得分:3)

在这里,您的原始代码在python 2.x中运行:

d = {'a': 10, 'b': 1, 'c': 22}
print(d.items())

t = d.items()
t.sort()
print(t)

因为d.items()返回一个<type 'list'>类,而不是python 3.x,使用python 3.x返回<class 'dict_items'>,它没有排序方法,所以可能的解决方法是这样做:

d = {'a': 10, 'b': 1, 'c': 22}

t = list(d.items())
print(t)
t.sort()
print(t)

如您所见,将d.items()转换为列表将允许您使用list.sort