Вы можете создать список с кортежами типа (-3.0, 'aa')
- значение в качестве первого и с минусом, чтобы он сортировался по значению по убыванию и по возрастанию ключа.
И затем вы можете отсортировать его, используя sorted()
data = {'aa': 3.0, 'bb': 1.2, 'ab': 3.0, 'cd': 6.0}
new = [(-value, key) for key, value in data.items()]
new = sorted(new)
new = [key for value, key in new]
print(new)
['cd', 'aa', 'ab', 'bb']
Или вы можете сделать то же самое непосредственно в sorted
, используя key=
data = {'aa': 3.0, 'bb': 1.2, 'ab': 3.0, 'cd': 6.0}
new = sorted(data.items(), key=lambda x: (-x[1], x[0]))
new = [key for key, value in new]
print(new)
водна строка
data = {'aa': 3.0, 'bb': 1.2, 'ab': 3.0, 'cd': 6.0}
new = [key for key, value in sorted(data.items(), key=lambda x: (-x[1], x[0]))]
print(new)