今天在写一个算法的过程中,得到了一个类似下面的字典:
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