Programa de Python para reasignar un diccionario basado en la relación de ruta

Dado un diccionario, la tarea es formular un programa de python para reasignarlo utilizando una relación de ruta entre sus claves y valores, es decir, el valor de una clave es clave para otra. 

Ejemplo:

Entrada : test_dict = {3: 4, 5: 6, 4: 8, 6: 9, 8: 10} 
Salida : {3: 10, 5: 9, 4: 10, 6: 9, 8: 10} 
Explicación : la clave 3 tiene el valor 4. la clave 4 tiene el valor 8. la clave 8 tiene el valor 10. no hay ninguna clave 10, por lo que en el nuevo diccionario la clave tendrá el valor 10.

De manera similar, la clave 5 tiene el valor 6. La clave 6 tiene el valor 9. No hay ninguna clave 9, por lo tanto, en el nuevo diccionario, la clave 5 tendrá el valor 9.

Enfoque: uso de bucle y teclas()

En esto, iteramos para cada clave y encontramos su profundidad, mediante el uso de una función externa para verificar repetidamente que cada valor sea clave de otro elemento en el diccionario.

Python3

def find_depth(ele, dicti):
  
    # finding depth
    for idx in range(len(list(dicti.keys()))):
  
        # assigning value as key if found
        if ele in list(dicti.keys()):
            ele = dicti[ele]
    return ele
  
  
# initializing dictionary
test_dict = {3: 4, 5: 6, 4: 8, 6: 9, 8: 10}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
res = dict()
  
# iterating for each key
for key, val in list(test_dict.items()):
    test_dict.pop(key)
    res[key] = find_depth(val, test_dict)
  
# printing result
print("The reassigned dictionary : " + str(res))

Producción:

El diccionario original es: {3: 4, 5: 6, 4: 8, 6: 9, 8: 10}

El diccionario reasignado: {3: 10, 5: 9, 4: 10, 6: 9, 8: 10}

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 *