根据最大值的长度从python列出的字典中查找项目?

Mis*_*a S 3 python dictionary list set python-3.x

假设我有一个像这样的字典:

dicl = {'amazon': [668, 667, 879], 'flipkart': [678], 'hey': [89,79]}
Run Code Online (Sandbox Code Playgroud)

我想根据项目长度的降序打印字典项目。

我想要的输出:

{'amazon' : 3, 'hey' : 2, 'flipkart' : 1}
Run Code Online (Sandbox Code Playgroud)

但是我按项目的排序顺序获得结果,而我想根据项目的降序显示项目?

我尝试过的

cov_m = {k : len(v) for k, v in sorted(dicl.items())}
Run Code Online (Sandbox Code Playgroud)

电流输出:

{'amazon' : 3, 'flipkart' : 1, 'hey' : 2}
Run Code Online (Sandbox Code Playgroud)

MrG*_*eek 5

您可以将键lambda函数作为参数传递给该sorted函数以指定排序条件:

dicl = {'amazon': [668, 667, 879], 'flipkart' : [678], 'hey' : [89,79]}

cov_m = {k : len(v) for k, v in sorted(dicl.items(), key = lambda i : -len(i[1]))}

print(cov_m)
Run Code Online (Sandbox Code Playgroud)

输出:

{'amazon': 3, 'hey': 2, 'flipkart': 1}
Run Code Online (Sandbox Code Playgroud)

这里len(i[1])是值的长度,我按-len(i[1])(负长度)进行排序,因为您希望它们以降序排列,如果使用更高级的排序标准,则应该, reverse = True)改用。