如果你有你描述的字典
>>> my_dict = {"first": [1, 2, 3], "second": [2, 3], "third": [1], "fourth": [1, 2, 3, 4]}
您可以通过以下方式获取字典中最长的 n 个值:
>>> sorted(my_dict.items(), key=lambda x: len(x[1]), reverse=True)[:2]
[('fourth', [1, 2, 3, 4]), ('first', [1, 2, 3])]
如果你想要键名
>>> from operator import itemgetter
>>> tuple(map(itemgetter(0), sorted(my_dict.items(), key=lambda x: len(x[1]), reverse=True)[:2]))
('fourth', 'first')
如果您关心持久性,请使用 OrderedDict
>>> from collections import OrderedDict
>>> OrderedDict(sorted(my_dict.items(), key=lambda x: len(x[1])))
OrderedDict([('third', [1]),
('second', [2, 3]),
('first', [1, 2, 3]),
('fourth', [1, 2, 3, 4])])
按顺序对键进行排序:
>>> tuple(OrderedDict(sorted(my_dict.items(), key=lambda x: len(x[1]))).keys())[::-1]
('fourth', 'first', 'second', 'third')