Python: clave con elemento máximo en el índice Kth en la lista de valores del diccionario

Dado un diccionario con valores como listas, la tarea es escribir un programa Python para obtener la clave con el elemento máximo en el índice K comparando los elementos de cada lista .

Entrada : test_dict = {‘Gfg’: [4, 6, 8, 2], 
‘es’: [1, 4, 5, 9], 
‘mejor’: [2, 3, 4, 10], 
‘para’ :[4, 5, 2, 1], 
‘geeks’ :[2, 10, 1, 8]}, K = 3 
Salida : mejor 
Explicación : 2, 9, 10, 1, 8 son elementos y 10 es el máximo.
 

Entrada : test_dict = {‘Gfg’: [4, 6, 8, 2], 
‘es’: [1, 4, 5, 9], 
‘mejor’: [2, 3, 4, 10], 
‘para’ :[4, 5, 2, 1], 
‘geeks’ :[2, 10, 1, 8]}, K = 2 
Salida : Gfg 
Explicación : 8, 5, 4, 2, 1 son elementos y 8 es máximo. 
 

Método 1: usar sorted(), comprensión de diccionario y lambda

En esto, realizamos una ordenación inversa de todos los elementos de la lista en los valores de índice K junto con su clave, y luego generamos claves de valor máximo extraído.

Ejemplo:

Python3

# Python3 code to demonstrate working of
# Key with Maximum element at Kth index 
# in Dictionary Value List Using sorted()
# + dictionary comprehension + lambda
  
# initializing dictionary
test_dict = {'Gfg': [4, 6],
             'is': [1, 4, 5, 9, 4, 5, 7],
             'best': [2, 3, 4, 10],
             'for': [4],
             'geeks': [2, 10, 1, 10]}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing K
K = 3
  
# sorted sorting all the values in reverse order
# Maximum element is found at 1st position
temp = sorted({key: val[K] if K <= len(val) else -1 for key,
               val in test_dict.items()}.items(),
              key=lambda sub: sub[1], reverse=True)
  
# getting all maximum keys in case of multiple
res = []
for idx, ele in enumerate(temp):
    res.append(temp[idx][0])
    if temp[idx][1] != temp[idx + 1][1]:
        break
  
# printing result
print("The extracted key : " + str(res))

Producción:

El diccionario original es: {‘Gfg’: [4, 6, 8, 2, 5, 6], ‘is’: [1], ‘best’: [2, 3, 4, 10], ‘for’: [4, 5, 2, 1], ‘geeks’: [2, 10, 1, 10]}

La clave extraída: [‘mejor’, ‘geeks’]

Método 2: Usar max() y la expresión del generador

En esto, realizamos la tarea de obtener el máximo usando max(), y la expresión del generador se usa para iterar a través de todas las claves en el diccionario. En el siguiente paso, obtenemos todas las claves que coinciden con el elemento máximo en K.

Ejemplo:

Python3

# Python3 code to demonstrate working of
# Key with Maximum element at Kth index 
# in Dictionary Value List Using max()
# + generator expression
  
# initializing dictionary
test_dict = {'Gfg': [4, 6, 8, 2, 5, 6],
             'is': [1],
             'best': [2, 3, 4, 10],
             'for': [4, 5, 2, 1],
             'geeks': [2, 10, 1, 10]}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing K
K = 3
  
# sorted sorting all the values in reverse order
# Maximum element is found at 1st position
# getting maximum
temp = max(test_dict[key][K] if K < len(
    test_dict[key]) else -1 for key in test_dict)
  
# getting all keys with maximum.
res = []
for key in test_dict:
    if K < len(test_dict[key]) and test_dict[key][K] == temp:
        res.append(key)
  
# printing result
print("The extracted key : " + str(res))

Producción:

El diccionario original es: {‘Gfg’: [4, 6, 8, 2, 5, 6], ‘is’: [1], ‘best’: [2, 3, 4, 10], ‘for’: [4, 5, 2, 1], ‘geeks’: [2, 10, 1, 10]}

La clave extraída: [‘mejor’, ‘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 *