gpt4 book ai didi

python - 使用 OrderedDict 按项目长度对 python 字典进行排序

转载 作者:行者123 更新时间:2023-11-30 23:08:52 25 4
gpt4 key购买 nike

我尝试使用 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): 

需要时,但我希望预先对字典进行排序。

最佳答案

你可以sort d.items() according to the length of the values :

In [268]: sorted(d.items(), key=lambda x: len(x[1]), reverse=True)
Out[268]: [(5, [1, 2, 3, 4]), (1, [1, 2, 3]), (4, [1, 2]), (2, [1])]

并将其传递给collections.OrderedDict:

In [267]: collections.OrderedDict(sorted(d.items(), key=lambda x: len(x[1]), reverse=True))
Out[267]: OrderedDict([(5, [1, 2, 3, 4]), (1, [1, 2, 3]), (4, [1, 2]), (2, [1])])

关于python - 使用 OrderedDict 按项目长度对 python 字典进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31504872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com