【发布时间】:2013-12-26 04:38:05
【问题描述】:
我有一本字典:
d = {'a':[1,3], 'b':[3,4,5,6], 'c':[1], 'd':[1,2,3] }
我想用前两个键值对创建一个更小的新字典,按值中列表的len 排序。所以在这种情况下,我想要:
newd = {'b':[3,4,5,6], 'd':[1,2,3] }
我尝试了this answer,但得到了这个错误:
NameError: global name 'd' is not defined
【问题讨论】:
-
请准确发布您尝试实施其他解决方案的方式。它看起来完全像您想要的那样,所以您在调整代码时一定犯了一个错误。当我使用其他代码时,它对我来说非常好。
-
@FelixKling 我没有调整代码。我只是从答案中复制并粘贴。
-
嗯,我也做了,它对我有用。见codepad.org/RyobPnHY。您是否也复制了
>>>?事实上,这个问题只是重复的。我们无法帮助您学习正确复制和粘贴代码。 -
"前两个键:值对,按值中列表的
len排序" - 你知道字典没有顺序,对吧?如果您只想要具有前两个最长值的键值对,那很好,但如果您希望 dict 按值长度排序,则会遇到问题。 -
@user2357112 我不关心新字典中的顺序,只是它们根据值的长度包含前 n 个 key:values 对。
标签: python sorting dictionary