Christian Heimes added the comment:
[[0,0]]*4 is not a matrix definition. You are defining a list that shares the
same list object four times. It's a common misunderstanding how list works, see
https://stackoverflow.com/questions/240178/list-of-lists-changes-reflected-across-sublists-unexpect
New submission from Arnaud :
It seems that the definition of a matrix like this:
a=[[0,0]]*4
does not create the matrix correctly by create 4 times the same pointer.
After the matrix creation, a
print(a)
gives the following result:
[[0, 0], [0, 0], [0, 0], [0, 0]]
which looks normal
print(type(a