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