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