Tout d'abord, je suis nouveau sur Python. J'utilise PTVS http://pytools.codeplex.com/ . Ensuite, j'ai installé reportlab. Ensuite, je lance un exemple de démonstration à https://github.com/nakagami/reportlab/blob/master/demos/colors/colortest.py#L68 Mais à la ligne,
all_colors = reportlab.lib.colors.getAllNamedColors().items()
all_colors.sort() # alpha order by name
Je reçois une erreur, dict_items object has no attribute sort
Je n'ai pas testé mais une théorie: vous utilisez python3!
De https://docs.python.org/3/whatsnew/3.0.html
les méthodes dict dict.keys (), dict.items () et dict.values () renvoient des "vues" au lieu de listes. Par exemple, cela ne fonctionne plus: k = d.keys (); k.sort (). Utilisez plutôt k = sorted (d) (cela fonctionne aussi en Python 2.5 aussi et est tout aussi efficace).
si je comprends bien, une "vue" est un itérateur, et un itérateur n'a pas la fonction de tri. Changez-le en
sorted(all_colors)
selon la documentation
La solution totale basée sur la réponse de Johan est donc:
all_colors = sorted(reportlab.lib.colors.getAllNamedColors().items())