I am writing code to parse a tilemap map from a config file. The map is in the format:
1|2|3|4
1|2|3|4
2|3|4|5
where the numbers represent tiles.
I then make this into an integer array:
[[int(tile) for tile in row.split("|")] for row in "1|2|3|4\n1|2|3|4\n2|3|4|5".lstrip("\n").split("\n")]
This produces an array in the format [row][column], but I would prefer it to be [column][row] as in [x][y] so I wouldn’t have to address it backwards (i.e. [y][x]).
But I can’t think of any concise ways of attacking the problem.
I have considered reworking the format using xml syntax through Tiled, but it appears too difficult for a beginner.
Thanks in advance for any responses.
use
mylist = zip(*mylist):How it works:
zip(*original)is equal tozip(original[0], original[1], original[2]). which in turn is equal to: zip([1, 2, 3, 4], [1, 2, 3, 4], [2, 3, 4, 5]).