The reason why is you have the list, just duplicated four times! Python isn't regenerating that list every time when you do *4
. It's using the same list object.
To get around this, you need for force python to regenrate that list for you every time:
[ [None] * 5 for i1 in range(4) ]
In this case, I'm using a list comprehension.