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)
您可以将键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)
改用。