Вы можете сделать что-то в этом роде:
>>> dictionary = {'aaaa': [1,2,2,3], 'aa': [1,2,2,3], 'aaa': [2,2,2,2], 'a': [4,2,2,6]}
>>> arr = sorted(dictionary.items(), key=lambda x: (-x[1][3],-len(x[0])))
>>> for k in arr:
print(k)
('a', [4, 2, 2, 6])
('aaaa', [1, 2, 2, 3])
('aa', [1, 2, 2, 3])
('aaa', [2, 2, 2, 2])
Примечание: сначала сортируйте по большему d
, затем длиннее key
.
Чтобы отменить порядок,любых приоритетов, просто экспериментируя с удалением / оставлением -
в элементах набора в функции lambda
.