Используйте аргумент key
для sorted
, чтобы получить пользовательский порядок сортировки.
a = {'p':10, 'w':3}
b = {'p':2, 'w':0}
c = {'p':3, 'w':0}
d = {'p':3, 'w':1}
dicts = [a,b,c,d]
print(sorted(dicts, reverse=True, key=lambda d: (d['p'], d['w'])))
Для каждого dict key
является кортежем значения p
и значения w
- что дает требуемый порядок сортировки
Вывод:
[{'p': 10, 'w': 3}, {'p': 3, 'w': 1}, {'p': 3, 'w': 0}, {'p': 2, 'w': 0}]