Python: clasificación sincronizada de claves

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)) 
Producción :

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *