{'hi': 2, 'what': 1, 'is': 3, 'your': 1, 'name': 3, 'my': 2, 'bond': 2, 'james': 1, 'damme': 4, 'van': 3, 'claude': 2, 'jean': 1}
Нам надо его отсортировать вначале по значениям (по убыванию), а элементы с одинаковым значением отсортировать в лексикографическом порядке.
Первый этап сортировки(по значению) я делал создавая список и используя функцию sort:
words = {'hi': 2, 'what': 1, 'is': 3, 'your': 1, 'name': 3, 'my': 2, 'bond': 2, 'james': 1, 'damme': 4, 'van': 3, 'claude': 2, 'jean': 1} words_list = [(val, key) for key, val in words.items() ] words_list.sort(reverse=True) print(words_list) #[(4, 'damme'), (3, 'van'), (3, 'name'), (3, 'is'), (2, 'my'), (2, 'hi'), (2, 'claude'), (2, 'bond'), (1, 'your'), (1, 'what'), (1, 'jean'), (1, 'james')]
А как сделать лексикографический порядок у одинаковых значений? (например у 1 - your, what, jean,james. А нужно так - james, jean, what, your)
Хочу сразу предупредить, что задача подразумевает минимальные знания, т.е. желательно без использования лямбд (это еще не изучалось) и без использования каких-либо сторонних библиотек.