如何按列表长度对列表的 defaultdict 进行排序
How can I sort a defaultdict of list by length of list
我有一个defaultdict
喜欢:
d = {'a':[1], 'b':[2,3,4], 'c':[5,6]}
我预计:
sorted_d = {'b':[2,3,4], 'c':[5,6], 'a': [1]}
如何按列表的长度排序?
python 中的词典未排序。
>>> d = {'a':[1], 'b':[2,3,4], 'c':[5,6]}
>>> from collections import OrderedDict
>>> OrderedDict(sorted(d.items(), key=lambda item: len(item[1]), reverse=True))
OrderedDict([('b', [2, 3, 4]), ('c', [5, 6]), ('a', [1])])
defaultdict
s - 与普通词典一样 - 没有顺序。
如果你只是想以一种排序的方式迭代它:
for key in sorted(d, key=lambda x:len(d[x]), reverse=True):
...
我有一个defaultdict
喜欢:
d = {'a':[1], 'b':[2,3,4], 'c':[5,6]}
我预计:
sorted_d = {'b':[2,3,4], 'c':[5,6], 'a': [1]}
如何按列表的长度排序?
python 中的词典未排序。
>>> d = {'a':[1], 'b':[2,3,4], 'c':[5,6]}
>>> from collections import OrderedDict
>>> OrderedDict(sorted(d.items(), key=lambda item: len(item[1]), reverse=True))
OrderedDict([('b', [2, 3, 4]), ('c', [5, 6]), ('a', [1])])
defaultdict
s - 与普通词典一样 - 没有顺序。
如果你只是想以一种排序的方式迭代它:
for key in sorted(d, key=lambda x:len(d[x]), reverse=True):
...