今天在写一个算法的过程中,得到了一个类似下面的字典:
1
|
{ 'user1' : 0.456 , 'user2' : 0.999 , 'user3' : 0.789 ,user: '0.234' }
|
想要获取字典里value值前3的key,就产生了如下代码
直接贴代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
def order_dict(dicts, n):
result = []
result1 = []
p = sorted ([(k, v) for k, v in dicts.items()], reverse = True )
s = set ()
for i in p:
s.add(i[ 1 ])
for i in sorted (s, reverse = True )[:n]:
for j in p:
if j[ 1 ] = = i:
result.append(j)
for r in result:
result1.append(r[ 0 ])
return result1
|
类似问题
比如:
1
|
dic = {‘user1 ':' 01 ', ‘user2' : '02' }
|
需要根据输入01,得到a
1
|
list (dic.keys())[ list (dic.values()).index( '01' )]
|
Python中获取字典中最大/最小值对应的键:
1.利用min(dict, key=dict.get)或者max(dict, key=dict.get)
1
2
3
|
d = { 1 : 1 , 2 : 0 , 3 : 2 }
min (d, key = d.get) / / 最小
max (d, key = d.get) / / 最大
|
2.利用lambda函数
1
2
|
min (d.items(), key = lambda x: x[ 1 ])
min (d, key = lambda x: d[x])
|
以上这篇python字典值排序并取出前n个key值的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/AbnerKou/article/details/80457236