Python:对dict的值进行排序,并提取与最后n个值对应的键

FaC*_*fee 3 python sorting dictionary

假设您有这样的字典,但不一定按其值排序:

d={a:2,k:2,c:11,f:17,e:84,y:86}

并且您希望将值从最大到最小排序:

order=sorted(d.values(),reverse=True)

这会给你:

order=[86,84,17,11,2,2]

现在,我们来看看最后两个元素:

b=order[-2:]=[2,2]

什么是检索db对应的键的Pythonic方法?在这种情况下,预期结果将是:

ans=[a,k]

Eug*_*ash 9

使用key参数sorted():

>>> d = {'a': 2, 'k': 2, 'c': 11, 'f': 17, 'e': 84, 'y': 86}
>>> sorted(d, key=d.get)[:2]
['a', 'k']
Run Code Online (Sandbox Code Playgroud)

来自文档:

key指定一个参数的函数,用于从每个列表元素中提取比较键:key=str.lower.默认值为None(直接比较元素).