Python | N valores más grandes en el diccionario

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))
Producción :

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 nlargestfunción. Esta es una función incorporada en heapqla 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))
Producción :

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *