Стандартный тип dict
по сути является хеш-таблицей и не позволяет пользователю переупорядочивать свои ключи.Однако этого можно достичь, используя OrderedDict
:
In [1]: d = {
...: "2010": [2],
...: "2009": [4,7],
...: "1989": [8]
...: }
In [2]: from collections import OrderedDict
In [5]: OrderedDict(sorted(d.items(), key=lambda (k,v):len(v), reverse=True))
Out[5]: OrderedDict([('2009', [4, 7]), ('2010', [2]), ('1989', [8])])
Чтобы отфильтровать записи, которые короче двух элементов:
In [7]: dict((k,v) for k,v in d.items() if len(v) > 1)
Out[7]: {'2009': [4, 7]}