Ответ 1
In [62]: y={100:1, 90:4, 99:3, 92:1, 101:1}
In [63]: sorted(y.items(), key=lambda x: (x[1],x[0]), reverse=True)
Out[63]: [(90, 4), (99, 3), (101, 1), (100, 1), (92, 1)]
key=lambda x: (x[1],x[0])
сообщает sorted
, что для каждого элемента x
в y.items()
используйте (x[1],x[0])
в качестве значения прокси для сортировки. Так как x
имеет вид (key,value)
, (x[1],x[0])
дает (value,key)
. Это приводит к тому, что sorted
сначала сортируется по value
, затем key
для тай-брейков.
reverse=True
сообщает sorted
представить результат в порядке убывания, а не в порядке возрастания.
См. эту страницу wiki page для большого учебника по сортировке на Python.
PS. Я попытался использовать key=reversed
вместо этого, но reversed(x)
возвращает итератор, который не сравнивается по мере необходимости здесь.