Muchas veces, mientras trabajamos con el diccionario de Python, podemos tener un problema particular para encontrar los N máximos de valores en numerosas claves. Este problema es bastante común cuando se trabaja con un dominio de desarrollo web. Analicemos varias formas en que se puede realizar esta tarea.
Método 1 :itemgetter() + items() + sorted()
La combinación del método anterior se utiliza para realizar esta tarea en particular. En esto, simplemente ordenamos de forma inversa los valores del diccionario expresados usando itemgetter()
y accedidos usandoitems().
# 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}
Método #2: Usarnlargest()
Esta tarea se puede realizar usando la nlargest
función. Esta es una función incorporada en heapq
la biblioteca que realiza esta tarea internamente y puede usarse para hacerlo externamente. Tiene el inconveniente de imprimir solo claves, no valores.
# 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']
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA