Dado un diccionario con valores de array, calcule el máximo de cada columna de esa array.
Input : test_dict = {"Gfg" : [[7, 6], [3, 2]], "is" : [[3, 6], [6, 10]], "best" : [[5, 8], [2, 3]]} Output : {'Gfg': [7, 6], 'is': [6, 10], 'best': [5, 8]} Explanation : 7 > 3, 6 > 2, hence ordering. Input : test_dict = {"Gfg" : [[7, 6], [3, 2]], "is" : [[3, 6], [6, 10]]} Output : {'Gfg': [7, 6], 'is': [6, 10]} Explanation : 6 > 3, 10 > 6, hence ordering.
Método #1: Usar la comprensión del diccionario + sorted() + items()
Esta es una de las formas en que se puede realizar esta tarea. En esto, las columnas internas se extraen y ordenan y el último valor de la lista ordenada (máximo) se devuelve como resultado. Esto sucede para todos los valores de la lista que utilizan la comprensión del diccionario.
Python3
# Python3 code to demonstrate working of # Column Maximums of Dictionary Value Matrix # Using dictionary comprehension + sorted() + items() # initializing dictionary test_dict = {"Gfg" : [[5, 6], [3, 4]], "is" : [[4, 6], [6, 8]], "best" : [[7, 4], [2, 3]]} # printing original dictionary print("The original dictionary is : " + str(test_dict)) # sorted() used to sort and "-1" used to get last i.e # maximum element res = {key : sorted(val, key = lambda ele : (ele[0], ele[1]))[-1] for key, val in test_dict.items()} # printing result print("The evaluated dictionary : " + str(res))
The original dictionary is : {'Gfg': [[5, 6], [3, 4]], 'is': [[4, 6], [6, 8]], 'best': [[7, 4], [2, 3]]} The evaluated dictionary : {'Gfg': [5, 6], 'is': [6, 8], 'best': [7, 4]}
Método #2: Usar max() + map() + zip()
Esta es una de las formas en que se puede realizar esta tarea. En esto, extraemos el máximo usando max(), y alineamos las columnas a la lista usando zip() y map() se usa para extender la lógica de zip a cada columna.
Python3
# Python3 code to demonstrate working of # Column Maximums of Dictionary Value Matrix # Using max() + map() + zip() # initializing dictionary test_dict = {"Gfg" : [[5, 6], [3, 4]], "is" : [[4, 6], [6, 8]], "best" : [[7, 4], [2, 3]]} # printing original dictionary print("The original dictionary is : " + str(test_dict)) # map extending logic to entire columns # result compiled using dictionary comprehension res = {key: list(map(max, zip(*val))) for key, val in test_dict.items()} # printing result print("The evaluated dictionary : " + str(res))
The original dictionary is : {'Gfg': [[5, 6], [3, 4]], 'is': [[4, 6], [6, 8]], 'best': [[7, 4], [2, 3]]} The evaluated dictionary : {'Gfg': [5, 6], 'is': [6, 8], 'best': [7, 4]}
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