Python - сортировка словаря по длине значений и по алфавиту - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть словарь:

db = {'Carl': [('Intel', 30, 40), ('Dell', 20, 50), ('Intel', -10, 60), ('Apple', 20, 55)], 'Barb': [('Intel', 20, 40), ('Intel', -10, 45), ('IBM', 40, 30), ('Intel', -10, 35)], 'Alan': [('Intel', 20, 10), ('Dell', 10, 50), ('Apple', 80, 80), ('Dell', -10, 55)], 'Dawn': [('Apple', 40, 80), ('Apple', 40, 85), ('Apple', -40, 90)]}

и функция, принимающая аргумент dict:

def frequent_traders(db : {str: [(str,int,int)]}) -> [str]:
    client_names = list()

    for k in sorted(db, key = lambda k:len(db[k]), reverse = True):
        client_names.append(k)

    return client_names

Я хочу вернуть список ключей в порядке убывания на основе длины их значений. Я сделал это в функции выше, но я не уверен, как вернуть их в возрастающем алфавитном порядке, если они имеют одинаковую длину значений.

1 Ответ

0 голосов
/ 25 апреля 2018
sorted(db, key = lambda k: (-len(db[k]), k))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...