Python: valores K más pequeños en el diccionario

Muchas veces, mientras trabajamos con el diccionario de Python, podemos tener un problema particular para encontrar los valores mínimos de K 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 usa para realizar esta tarea en particular. En esto, solo ordenamos los valores del diccionario expresados ​​usando itemgetter() y accedidos usando items().

# Python3 code to demonstrate working of
# Smallest K 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 K 
K = 2
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Smallest K values in Dictionary
# Using sorted() + itemgetter() + items()
res = dict(sorted(test_dict.items(), key = itemgetter(1))[:K])
  
# printing result
print("The minimum K value pairs are " + str(res))
Producción :

The original dictionary is : {'geeks': 3, 'is': 4, 'for': 7, 'best': 6, 'gfg': 1}
The minimum K value pairs are {'geeks': 3, 'gfg': 1}

Método #2: Usarnsmallest()
Esta tarea se puede realizar usando la nsmallestfunción. Esta es una función incorporada en la biblioteca heapq 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
# Smallest K values in Dictionary
# Using nsmallest
from heapq import nsmallest
  
# Initialize dictionary
test_dict = {'gfg' : 1, 'is' : 4, 'best' : 6, 'for' : 7, 'geeks' : 3 }
  
# Initialize K
K = 2
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Smallest K values in Dictionary
# Using nsmallest
res = nsmallest(K, test_dict, key = test_dict.get)
  
# printing result
print("The minimum K value pairs are " + str(res))
Producción :

The original dictionary is : {'geeks': 3, 'best': 6, 'is': 4, 'gfg': 1, 'for': 7}
The minimum K value pairs are ['gfg', 'geeks']

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 *