Estoy trabajando en un proyecto en el que necesito almacenar una matriz de números indexados por dos claves de cadena. La matriz no está dentada, es decir, si existe una clave de columna para cualquier fila, entonces debería existir para todas las filas. De forma similar, si existe una clave de fila para cualquier columna, entonces debería existir para todas las columnas.Matrices asociativas?
La forma más obvia de expresar esto es con una matriz asociativa de matrices asociativas, pero esto es incómodo e ineficiente, y no impone la propiedad no irregular. ¿Algún lenguaje de programación popular proporciona una matriz asociativa integrada en el lenguaje o como parte de sus bibliotecas estándar? De ser así, ¿cómo funcionan, tanto en la API como en el nivel de implementación? Estoy usando Python y D para este proyecto, pero los ejemplos en otros idiomas todavía serían útiles porque podría ver la API y descubrir la mejor manera de implementar algo similar en Python o D.
Sí, realmente no conozco Python tan bien. No sabía que pudieras hacer esto, aunque tiene sentido en retrospectiva dado que básicamente estás usando tuplas como clave. – dsimcha
esto funciona muy bien, pero usará más memoria para almacenar las claves que pensé que era parte de lo que no quería. Sin embargo, debería ser un poco más rápido que el método que sugerí, que requerirá búsquedas en la tabla hash para encontrar los índices matriciales antes de acceder a la matriz. Velocidad o espacio: esa es la pregunta. –
@Justin: Es una buena idea, pero espero una mejor respuesta. Lo ideal es que me gustaría una matriz "real", donde puedo obtener todas las filas para una sola columna, o todas las columnas para una sola fila, etc., no solo una solución alternativa. – dsimcha