index magic:
>>> grid = [['.', '.', '.', '.', '.', '.'],
['.', '0', '0', '.', '.', '.'],
['0', '0', '0', '0', '.', '.'],
['0', '0', '0', '0', '0', '.'],
['.', '0', '0', '0', '0', '0'],
['0', '0', '0', '0', '0', '.'],
['0', '0', '0', '0', '.', '.'],
['.', '0', '0', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
>>> for i in range(len(grid[0])): #assuming they all have the same length
print (''.join(x[i] for x in grid))
..00.00..
.0000000.
.0000000.
..00000..
...000...
....0....
or to save to a new grid:
>>> newgrid = []
>>> for i in range(len(grid[0])): #assuming they all have the same length
newgrid.append([x[i] for x in grid])
>>> newgrid
[['.', '.', '0', '0', '.', '0', '0', '.', '.'],
['.', '0', '0', '0', '0', '0', '0', '0', '.'],
['.', '0', '0', '0', '0', '0', '0', '0', '.'],
['.', '.', '0', '0', '0', '0', '0', '.', '.'],
['.', '.', '.', '0', '0', '0', '.', '.', '.'],
['.', '.', '.', '.', '0', '.', '.', '.', '.']]
or one line:
>>> newgrid = [[x[i] for x in grid] for i in range(len(grid[0]))]
>>> newgrid
[['.', '.', '0', '0', '.', '0', '0', '.', '.'],
['.', '0', '0', '0', '0', '0', '0', '0', '.'],
['.', '0', '0', '0', '0', '0', '0', '0', '.'],
['.', '.', '0', '0', '0', '0', '0', '.', '.'],
['.', '.', '.', '0', '0', '0', '.', '.', '.'],
['.', '.', '.', '.', '0', '.', '.', '.', '.']]