Pivoting a 2-dimensional list
In one of the exercism.io exercises, a grid is represented by a list of lists where each inner list represents a row.
The exercise then asks you to pivot the grid, that is, transform the list of lists so that each list represents a column.
From someone else's solution I learned that an easy way to conduct this transform is to use List.zip
and Tuple.to_list
.
grid = [[1,2,3, 4], [1,2,3, 4], [1, 2, 3, 4]]
List.zip(grid)
|> Enum.map(&Tuple.to_list/1)
# [[1, 1, 1], [2, 2, 2], [3, 3, 3], [4, 4, 4]]
Tuple's to_list
method is needed because List.zip
returns an array of tuples.