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]]