по значению
# от меньшего к большему
sorted(d.items(),
key=lambda x: x[1])
# от большего к меньшему
sorted(d.items(),
key=lambda x: x[1],
reverse=True)
по ключу
# ключи — строки/числа
sorted(d.items(),
key=lambda x: x[0])
# по убыванию ключа
sorted(d.items(),
key=lambda x: x[0],
reverse=True)
сначала значение, при равенстве — ключ
sorted(d.items(), key=lambda x: (x[1], x[0]))
# x[1] — первый критерий, x[0] — второй (тай-брейкер)
Чтобы один из критериев был «по убыванию», поставьте минус: (-x[1], x[0])