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))
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))
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