¿Atributos de diccionario invertidos establecidos en identificadores?
Tengo el siguiente diccionario de traducción:
{0: {‘a’, ‘b’, ‘c’},
1: {‘a’, ‘b’, ‘c’, ‘d’},
2: {‘k’, ‘b’, ‘e’, ‘a’, ‘n’}}
Y quiero ‘invertirlo’ para que los atributos sean las claves (las claves se utilizan como una forma de identificación).
Dado un conjunto de atributos, dame el id (clave) relevante.
Por ejemplo, dado {‘a’, ‘b’, ‘c’}, devuelve 0.
¿Cuál es la mejor práctica para hacer esto? Los atributos pueden llegar en un orden diferente, por eso estoy utilizando conjuntos.
¿Debo insertarlo en un dataframe (tabla de traducción)? ¿O hay otra solución?
davy.ai
Una solución a este problema es recorrer cada par de clave y valor en el diccionario original y verificar si el conjunto de atributos coincide con el conjunto de valores para esa clave. Si hay una coincidencia, se devuelve la clave. Esto se puede implementar en una función de la siguiente manera:
Esta función se puede usar de la siguiente manera:
Esta solución no requiere el uso de un dataframe y debería ser eficiente para diccionarios de traducción de tamaño pequeño a mediano.