Dada uma matriz inteira ae um inteiro não negativo i, produz um mapeamento bque mapeia os valores distintos na ith coluna de apara linhas de aquem tem esse valor na ith coluna.
Você pode assumir que iestá no intervalo semi-aberto [0, num_cols(a))(ou [1, num_cols(a)]se você optar por usar índices baseados em 1) e que todos os números inteiros estão dentro do intervalo representável para o seu idioma. A entrada e a saída podem ser feitas de qualquer maneira razoável, desde que atenda aos requisitos básicos do desafio (matriz 2D -> mapeamento de entradas para matrizes 2D de entradas). Desde que o mapeamento seja claro e consistente, as chaves não precisam ser incluídas na saída.
Exemplos
[[1]], 0 -> {1: [[1]]}
[[3, 4, 5], [1, 4, 2], [5, 5, 5], [7, 7, 7], [1, 5, 9]], 1 -> {4: [[3, 4, 5], [1, 4, 2]], 5: [[5, 5, 5], [1, 5, 9]], 7: [[7, 7, 7]]}
[[1, 2, 3, 4, 5], [5, 4, 3, 2, 1], [2, 3, 4, 5, 6], [8, 9, 100, 0, 2]], 4 -> {5: [[1, 2, 3, 4, 5]], 1: [[5, 4, 3, 2, 1]], 6: [[2, 3, 4, 5, 6]], 2: [[8, 9, 100, 0, 2]]}
Isso é código-golfe , então a resposta mais curta em bytes vence.