dict_items对象没有属性'sort'

时间:2015-01-20 06:38:17

标签: python reportlab ptvs

首先,我是Python新手。我正在使用PTVS http://pytools.codeplex.com/。接下来我安装了reportlab。然后我在https://github.com/nakagami/reportlab/blob/master/demos/colors/colortest.py#L68运行示例演示但是在行,

all_colors = reportlab.lib.colors.getAllNamedColors().items()
all_colors.sort() # alpha order by name

我收到错误dict_items object has no attribute sort

3 个答案:

答案 0 :(得分:37)

没有测试但是理论:你使用的是python3!

来自https://docs.python.org/3/whatsnew/3.0.html

  

dict方法dict.keys(),dict.items()和dict.values()返回“views”而不是列表。例如,这不再有效:k = d.keys(); k.sort()。使用k = sorted(d)代替(这也适用于Python 2.5,效率也很高)。

据我所知,“view”是一个迭代器,而迭代器没有sort函数。将其更改为

sorted(all_colors)

根据文件

答案 1 :(得分:3)

所以基于Johan的答案的整体解决方案是:

all_colors = sorted(reportlab.lib.colors.getAllNamedColors().items())

答案 2 :(得分:0)

我相信sort()方法不再支持 Python 3.x

必须将相应的变量传递给sorted(all_colors)