📜  Python|字典中的 N 个最大值

📅  最后修改于: 2022-05-13 01:55:35.736000             🧑  作者: Mango

Python|字典中的 N 个最大值

很多时候,在使用Python字典时,我们可能会遇到一个特殊的问题,即在众多键中找到 N 个最大值。在使用 Web 开发域时,这个问题很常见。让我们讨论几种可以执行此任务的方法。

方法#1: itemgetter() + items() + sorted()

上述方法的组合用于执行此特定任务。在此,我们只是对使用itemgetter()表示并使用items().

# Python3 code to demonstrate working of
# N largest values in dictionary
# Using sorted() + itemgetter() + items()
from operator import itemgetter
  
# Initialize dictionary
test_dict = {'gfg' : 1, 'is' : 4, 'best' : 6, 'for' : 7, 'geeks' : 3 }
  
# Initialize N 
N = 3
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# N largest values in dictionary
# Using sorted() + itemgetter() + items()
res = dict(sorted(test_dict.items(), key = itemgetter(1), reverse = True)[:N])
  
# printing result
print("The top N value pairs are  " + str(res))
输出 :
The original dictionary is : {'best': 6, 'gfg': 1, 'geeks': 3, 'for': 7, 'is': 4}
The top N value pairs are  {'for': 7, 'is': 4, 'best': 6}

方法 #2:使用nlargest()
可以使用nlargest函数执行此任务。这是heapq库中的内置函数,它在内部执行此任务,可用于在外部执行此任务。有只打印键而不是值的缺点。

# Python3 code to demonstrate working of
# N largest values in dictionary
# Using nlargest
from heapq import nlargest
  
# Initialize dictionary
test_dict = {'gfg' : 1, 'is' : 4, 'best' : 6, 'for' : 7, 'geeks' : 3 }
  
# Initialize N 
N = 3
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# N largest values in dictionary
# Using nlargest
res = nlargest(N, test_dict, key = test_dict.get)
  
# printing result
print("The top N value pairs are  " + str(res))
输出 :
The original dictionary is : {'gfg': 1, 'best': 6, 'geeks': 3, 'for': 7, 'is': 4}
The top N value pairs are  ['for', 'best', 'is']