It is better to use strings as keys, as they are immutable while arrays are mutable.
var d = {[1] : "test"}
for key in d:
key.append(2)
print(d)
What do you think the result will be? I tried it and got {[1, 2]:Null}, which means that the key was successfully modified but the value “test” is no longer reachable.
This kind of in-place modification of keys is never a good idea and it’s best to use immutable types as keys, so basically strings or numbers.
If you wrote more about the problem you are solving maybe a better solution could be proposed.
There isen’t a problem yet, already using strings as keys.
So vectors can be changed while editing dictionares?
var pos = Vector3(1,2,3)
var objects_list = {}
for x in range(pos.x,pos.x+100):
for z in range(pos.z,pos.z+100):
var v = objects_list.get(Vector3(x,0,z))
if v == null:
objects_list[Vector3(x,0,z)] = {object,data,etc}