Python: extrae los diccionarios de valores de las claves máximas

Dado un diccionario, extraiga todo el diccionario que contenga cualquier clave que tenga valores máximos entre otras claves en la lista de diccionarios.

Entrada : [{“Gfg”: 3, “es”: 7, “Mejor”: 8}, {“Gfg”: 9, “es”: 2, “Mejor”: 9}, {“Gfg”: 5, “es”: 4, “Mejor”: 10}, {“Gfg”: 3, “es”: 6, “Mejor”: 14}] Salida: [{“Gfg”: 3, “es”: 7
, “ Mejor”: 8}, {“Gfg”: 9, “es”: 2, “Mejor”: 9}, {“Gfg”: 3, “es”: 6, “Mejor”: 14}] Explicación:
Gfg ” tiene 9 como mejor, “es” tiene 7 y “Mejor” tiene 14, se extraen esos diccionarios.

Entrada : [{“Gfg”: 3, “es”: 7, “Mejor”: 8}, {“Gfg”: 9, “es”: 2, “Mejor”: 9}, {“Gfg”: 5, “es”: 4, “Mejor”: 10}, {“Gfg”: 3, “es”: 6, “Mejor”: 16}] Salida: [{“Gfg”: 3, “es”: 7
, “ Mejor”: 8}, {“Gfg”: 9, “es”: 2, “Mejor”: 9}, {“Gfg”: 3, “es”: 6, “Mejor”: 16}] Explicación:
Gfg ” tiene 9 como mejor, “es” tiene 7 y “Mejor” tiene 16, se extraen esos diccionarios.

Método: usando max() + filter() + lambda

La combinación de las funcionalidades anteriores se puede utilizar para resolver este problema. En esto, primero se extrae el máximo para una clave en particular y luego se extraen todos los diccionarios que coinciden con la clave máxima. Esto se lleva a cabo para todas las teclas.

Python3

# Python3 code to demonstrate working of 
# Extract Maximum Keys' value dictionaries
# Using max() + filter() + lambda
  
# initializing list
test_list = [{"Gfg" : 3, "is" : 7, "Best" : 8}, 
             {"Gfg" : 9, "is" : 2, "Best" : 9}, 
             {"Gfg" : 5, "is" : 4, "Best" : 10},
             {"Gfg" : 3, "is" : 6, "Best" : 8}]
  
# printing original list
print("The original list : " + str(test_list))
  
res = []
  
# getting all keys 
all_keys = list(test_list[0].keys())
for sub in all_keys:
      
    # extracting maximum of each keys
    temp = max(test_list, key = lambda ele: ele[sub]) 
    res_key = list(filter(lambda ele: ele[sub] == temp[sub], test_list))
    res.append(res_key)
  
# printing result 
print("The extracted maximum key values dictionaries : " + str(res))
Producción

The original list : [{'Gfg': 3, 'is': 7, 'Best': 8}, {'Gfg': 9, 'is': 2, 'Best': 9}, {'Gfg': 5, 'is': 4, 'Best': 10}, {'Gfg': 3, 'is': 6, 'Best': 8}]
The extracted maximum key values dictionaries : [[{'Gfg': 9, 'is': 2, 'Best': 9}], [{'Gfg': 3, 'is': 7, 'Best': 8}], [{'Gfg': 5, 'is': 4, 'Best': 10}]]

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 *