Programa Python para obtener el valor de un diccionario dado por el índice del valor máximo de la clave dada

Dado un diccionario con valores como una lista, la tarea es escribir un programa de Python que pueda encontrar el máximo de cualquier clave y generar una columna de índice similar de los valores de otras claves.

Acercarse :

  • Obtenga el máximo de la clave dada.
  • Obtiene el índice del elemento máximo encontrado.
  • Compruebe si el índice de max está presente en la clave de búsqueda; si no, devuelva el resultado no posible.
  • Obtenga el elemento en la clave de búsqueda ( opt_key), que se encuentra en el índice que se encuentra en el Paso 2.

Entrada: test_dict = {“gfg”: [4, 1, 6], “es”: [1, 4, 8], “mejor”: [9, 10, 1]}, max_search = “mejor”, opt_key = «gfg»

Salida : 1

Explicación: 10 es el elemento máximo en la mejor clave, que corresponde al primer índice. En gfg, el primer índice es 1, por lo tanto, 1.

Entrada: test_dict = {“gfg”: [4, 10, 6], “es”: [1, 4, 8], “mejor”: [9, 10, 1]}, max_search = “mejor”, opt_key = «gfg»

Salida : 10

Explicación: 10 es el elemento máximo en la mejor clave, que corresponde al primer índice. En gfg, el primer índice es 10, por lo tanto, 10.

Método 1: Usar index() , max( ) y lambda

En esto, encontramos el máximo de la clave de búsqueda máxima usando max() y obtenemos su índice usando index(), y luego obtenemos el valor del índice en la clave de salida. 

Ejemplo:

Python3

# initializing dictionary
test_dict = {"gfg": [4], "is": [1, 4, 8], "best": [9, 10]}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing max_search key
max_search = "best"
  
# initializing output key
opt_key = "gfg"
  
# handling case in which maximum index is not 
# present in output key
if len(test_dict[opt_key]) <= test_dict[max_search].index(
  max(test_dict[max_search])):
    res = "Result not possible"
  
# using max() to get of search key
else:
    res = max(test_dict[opt_key], key=lambda sub: test_dict[max_search]
              [test_dict[opt_key].index(sub)])
  
# printing result
print("The required output : " + str(res))

Producción:

El diccionario original es: {‘gfg’: [4], ‘is’: [1, 4, 8], ‘best’: [9, 10]}

La salida requerida: Resultado no posible

Método 2: Usar zip() y max()

En esto, las listas de las claves de búsqueda y de salida se combinan usando zip(), publica que se encuentra un máximo de una lista y se devuelve el índice correspondiente de la clave de salida. 

Ejemplo:

Python3

# initializing dictionary
test_dict = {"gfg": [4, 1, 6], "is": [1, 4, 8], "best": [9, 10, 1]}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing max_search key
max_search = "best"
  
# initializing output key
opt_key = "gfg"
  
# handling case in which maximum index is not present 
# in output key
if len(test_dict[opt_key]) <= test_dict[max_search].index(
  max(test_dict[max_search])):
    res = "Result not possible"
  
# using max() to get of search key
# zip() used for combining lists
else:
    res = max(zip(test_dict[opt_key], test_dict[max_search]),
              key=lambda sub: sub[1])[0]
  
# printing result
print("The required output : " + str(res))

Producción:

El diccionario original es: {‘gfg’: [4, 1, 6], ‘is’: [1, 4, 8], ‘best’: [9, 10, 1]}

La salida requerida: 1

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 *