我有一本字典
d={'a': ['apple'], 'd': ['dog', 'dance', 'dragon'], 'r': ['robot'], 'c': ['cow', 'cotton']}
我想定义一个函数,该函数将按照集合的大小对其进行排序。也就是说,由于“ d”的值包含3个项,“ c”的值包含2个项,而“ a”和“ r”的值均为1个,因此我希望按此顺序创建字典。所以
d={'d': ['dog', 'dance', 'dragon'], 'c': ['cow', 'cotton'], 'a': ['apple'], 'r': ['robot']}
我到目前为止所拥有的是
def order_by_set_size(d):
return sorted(d, key=lambda k: len(d[k]), reverse=True)
这给了我一个列表,但是我不知道如何让它给我一本字典。我研究了很多其他问题,并尝试了不同的代码变体,这与我所能接近的差不多。
(我正在使用Python 3)
您需要使用OrderedDict,请参阅https://docs.python.org/3/library/collections.html#collections.OrderedDict
根据他们的例子
from collections import OrderedDict
d={'a': ['apple'], 'd': ['dog', 'dance', 'dragon'], 'r': ['robot'], 'c': ['cow', 'cotton']}
ordered = OrderedDict(sorted(d.items(),key=lambda t: len(t[1]),reverse=True))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句