A veces, mientras trabajamos con los diccionarios de Python, podemos tener un problema en el que necesitamos realizar el tipo de una tecla del diccionario y también realizar cambios similares en las teclas correspondientes. Este tipo tiene aplicación en desarrollo web y programación competitiva. Vamos a discutir cierta forma en que se puede realizar esta tarea.
Entrada : test_dict = {“Gfg”: [3, 2, 1], ‘mejor’: [17, 10, 20]}, sort_key = “Gfg”
Salida : {‘Gfg’: [1, 2, 3], ‘mejor’: [20, 10, 17]}Entrada : test_dict = {“Gfg”: [3, 1], ‘mejor’: [10, 20], ‘CS’: [12, 43]}, sort_key = “Gfg”
Salida : {‘Gfg’: [1 , 3], ‘mejor’: [20, 10], ‘CS’: [43, 12]}
Método n.º 1: Uso de la comprensión de diccionario + sorted()
+ comprensión de lista
La combinación de las funcionalidades anteriores se puede utilizar para resolver este problema. En esto, realizamos la clasificación usando sorted() y la replicación a otros diccionarios se realiza usando la comprensión del diccionario.
# Python3 code to demonstrate working of # Synchronized Sorting # Using dictionary comprehension + sorted() + list comprehension # initializing dictionary test_dict = {"Gfg" : [4, 6, 7, 3, 10], 'is' : [7, 5, 9, 10, 11], 'best' : [1, 2, 10, 21, 12]} # printing original dictionary print("The original dictionary : " + str(test_dict)) # initializing sort key sort_key = "Gfg" # Synchronized Sorting # Using dictionary comprehension + sorted() + list comprehension temp = [ele for ele, idx in sorted(enumerate(test_dict[sort_key]), key = lambda x : x[1])] res = {key : [val[idx] for idx in temp] for key, val in test_dict.items()} # printing result print("The Synchronized sorted dictionary : " + str(res))
El diccionario original: {‘mejor’: [1, 2, 10, 21, 12], ‘Gfg’: [4, 6, 7, 3, 10], ‘es’: [7, 5, 9, 10, 11]}
El diccionario ordenado sincronizado: {‘mejor’: [21, 1, 2, 10, 12], ‘Gfg’: [3, 4, 6, 7, 10], ‘es’: [10, 7, 5, 9, 11]}
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