Я могу сортировать по ключу или значению, но мне нужно его сортировать по значению, а затем - в одной строке. Чтобы лучше объяснить это, я могу показать свою проблему:
dict = {'apple': 2, 'banana': 3, 'almond':2 , 'beetroot': 3, 'peach': 4}
Я хочу, чтобы мой результат сортировался по их значению, а затем по возрастанию (A-Z) по их ключу (в алфавитном порядке). Результат в таком списке:
С выходом: ['peach', 'banana', 'beetroot', 'almond', 'apple']
Единственный способ, которым я знаю, сделать это до сих пор:
[v[0] for v in sorted(dict.items(), key=lambda(k,v): (v,k))]
С выходом: ['almond', 'apple', 'banana', 'beetroot', 'peach']
Таким образом, он отсортировал значения в порядке возрастания и клавиши в алфавитном порядке в порядке возрастания (A-Z). Поэтому, если я отменил это:
[v[0] for v in sorted(dict.items(), key=lambda(k,v): (v,k), reverse=True)]
С выходом: ['peach', 'beetroot', 'banana', 'apple', 'almond']
Он отсортировал значения в порядке убывания и клавиши в алфавитном порядке в порядке убывания (Z-A).
Есть ли способ сортировать значения в порядке убывания и ключи в порядке возрастания (т.е. A-Z) и получить результат, который я показал выше?