I made i matrix 5x3
field = []
fields = []
for i in range(0,5):
for j in range(0,3):
x = 1
field.append(x)
fields.append(field)
When i want to change one field
fields[2][2] = 0
i get this:
fields[0][0] = 1
fields[0][1] = 1
fields[0][2] = **0**
fields[1][0] = 1
fields[1][1] = 1
fields[1][2] = **0**
fields[2][0] = 1
fields[2][1] = 1
fields[2][2] = **0**
fields[3][0] = 1
fields[3][1] = 1
fields[3][2] = **0**
fields[4][0] = 1
fields[4][1] = 1
fields[4][2] = **0**
Instead one change i am getting five
Its because you have the reference to the same field
across all rows.
You want this:
for i in range(0,5):
field = []
for j in range(0,3):
x = 1
field.append(x)
fields.append(field)
field
should get reset for every row. That's why you should have it inside the first loop. Now your fields[2][2] = 0
would work.
>>> fields
[[1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1]]
>>> fields[2][2] = 0
>>> fields
[[1, 1, 1], [1, 1, 1], [1, 1, 0], [1, 1, 1], [1, 1, 1]]