Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python-按值的长度和字母顺序对字典进行排序_Python_Sorting_Dictionary - Fatal编程技术网

python-按值的长度和字母顺序对字典进行排序

python-按值的长度和字母顺序对字典进行排序,python,sorting,dictionary,Python,Sorting,Dictionary,我有一本字典: 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),

我有一本字典:

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

我想根据键值的长度按降序返回键列表。我已经在上面的函数中这样做了,但是如果它们的值长度相同,我不确定如何按字母顺序递增返回它们。

查看Python排序教程;您需要使用字母顺序作为辅助键。@pissall-but
list
是有序的,这就是他正在构建的。事实上,
频繁交易者
:要将无序的
dict
转换为有序的
列表
@pissall,我已经在函数中按长度对键进行了排序,并在列表中返回了它们。有些键的长度相同,我想按字母顺序排列。查看Python排序教程;您需要使用字母顺序作为辅助键。@pissall-but
list
是有序的,这就是他正在构建的。事实上,
频繁交易者
:要将无序的
dict
转换为有序的
列表
@pissall,我已经在函数中按长度对键进行了排序,并在列表中返回了它们。有些钥匙的长度相同,我想按字母顺序排列
sorted(db, key = lambda k: (-len(db[k]), k))