【发布时间】:2015-10-08 21:20:55
【问题描述】:
我正在尝试使用 OrderedDict 创建一个字典,其中项目是条目列表,并且我希望排序基于项目列表的长度。
说:
d = {2:[1], 1:[1,2,3], 4:[1,2], 5:[1,2,3,4]}
我试过了:
od = collections.OrderedDict(sorted(len(d.items())))
但我有一个TypeError: 'int' object is not iterable
我通过迭代这样的方法找到了解决方法:
for k in sorted(d, key=lambda k: len(d[k]), reverse=True):
在需要时,但我宁愿事先对字典进行排序。
【问题讨论】:
-
第一个
sorted函数调用是错误的(第二个也是错误的,但原因不同) - 错误消息解释了原因。该错误与将其转回 OrderedDictionary 无关。将问题分解为多个部分,修复损坏的部分,然后使用/应用更正。 -
你的意思是什么我宁愿事先对字典进行排序。?
标签: python list dictionary sorted ordereddictionary