Programa de Python para extraer N claves de diccionarios más grandes

Dado un diccionario, extraiga las N claves de diccionario más grandes en orden descendente.

Entrada : test_dict = {6: 2, 8: 9, 3: 9, 10: 8}, N = 3 
Salida : [10, 8, 6] 
Explicación : Máx. N claves extraídas en orden descendente.

Entrada : test_dict = {6: 2, 8: 9, 3: 9, 10: 8}, N = 2 
Salida : [10, 8] 
Explicación : Máx. N claves extraídas en orden descendente. 

Método #1: Usar sorted() + lambda + reverse

La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, realizamos la ordenación por teclas usando sorted() + lambda y se usa reverse para realizar la ordenación inversa para obtener el orden requerido.

Python3

# Python3 code to demonstrate working of 
# Extract top N Dictionaries by Key
# Using sorted() + lambda + reverse
  
# initializing dictionary
test_dict = {6 : 2, 8: 9, 3: 9, 10: 8}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing N 
N = 4
  
res = []
  
# 0 in lambda used for keys, list sliced till N for top N values
for key, val in sorted(test_dict.items(), key = lambda x: x[0], reverse = True)[:N]:
    res.append(key)
  
# printing result 
print("Top N keys are: " + str(res))
Producción

The original dictionary is : {6: 1, 8: 9, 3: 9, 10: 8}
Top N keys are: [10, 8, 6, 3]

Método #2: Usar nlargest() + lambda

Esta es otra forma más en la que se puede realizar esta tarea. En esto, los valores máximos se extraen usando nlargest(), y la función lambda se usa para impulsar la extracción de claves y la lógica de comparación.

Python3

# Python3 code to demonstrate working of 
# Extract top N Dictionaries by Key
# Using nlargest() + lambda
from heapq import nlargest
  
# initializing dictionary
test_dict = {6 : 2, 8: 9, 3: 9, 6: 1, 10: 8}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing N 
N = 4
  
res = []
  
# Using nlargest() to get maximum keys 
for key, val in nlargest(N, test_dict.items(), key = lambda ele: ele[0]):
    res.append(key)
      
# printing result 
print("Top N keys are: " + str(res))
Producción

The original dictionary is : {6: 1, 8: 9, 3: 9, 10: 8}
Top N keys are: [10, 8, 6, 3]

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 *