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']