La lista 2D tiene un comportamiento extraño al intentar modificar un solo valor [duplicado]

Posible duplicado:
Característica inesperada en una lista de listas de Python

Por lo tanto, soy relativamente nuevo en Python y tengo problemas para trabajar con listas 2D.

Aquí está mi código:

data = [[None]*5]*5
data[0][0] = 'Cell A1'
print data

y aquí está la salida (formateada para facilitar la lectura):

[['Cell A1', None, None, None, None],
 ['Cell A1', None, None, None, None],
 ['Cell A1', None, None, None, None],
 ['Cell A1', None, None, None, None],
 ['Cell A1', None, None, None, None]]

¿Por qué a cada fila se le asigna el valor?

Respuestas a la pregunta(3)

Su respuesta a la pregunta