我有一本字典:
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
我想根据值的长度按递减顺序返回键列表。我在上面的函数中已经这样做了,但是如果它们具有相同的值,我不确定如何按字母顺序递增它们。
答案 0 :(得分:2)
sorted(db, key = lambda k: (-len(db[k]), k))