Python - Sorting huge array into multiples

Refresh

6 days ago

Views

38 time

1

I'm working with a map of which is split up into 750 x 750 numbered tiles. These are stored in a JSON file. My aim is to pull the data and split each tile into separate arrays / chunks.

I already have it working, but I'm a python beginner and the code is really slow (it is handling 500,000+ numbers). Wondered if there was any faster method available for doing the same thing.

First I pull the json data into an array

with open("data.json") as data_file:
    data = json.load(data_file)
    arr = data["mapLayer"][0]["tiles"]

Then I run through the array and sort them into separate chunk arrays based on their position:

x=0
y=0 

for tile in arr:
    chunkPos = str(x/16) + "x" + str(y/16)
    chunks[chunkPos].append(tile)
    x += 1

    // reset x pos when it reaches map edge
    if x == 750
        x=0
        y=y+1

So overall I want to move the first 256 numbers in the array to chunks[0x0], the next 256 into chunks[0x1], next 256 into chunks[0x2] and so on...

When it reaches chunks[0x749] then the next is chunks[1x1], chunks[2x1], chunks[3x1], etc

0 answers