Hacer una lista de listas sin referencias en python

Estoy tratando de hacer una lista de listas de una manera eficiente, pero no puedo encontrar ninguna manera de evitar tener referencias. Esto es lo que he intentado hasta ahora, obviamente sin éxito:

>>> test=[[None]*3][:]*3 >>> test [[None, None, None], [None, None, None], [None, None, None]] >>> test[0][0]=0 >>> test [[0, None, None], [0, None, None], [0, None, None]] >>> 

Esto no es lo que quiero que suceda. Lo que quiero es que 0 sea el primer elemento de solo la primera lista. ¿Cómo puedo hacer esto?

Use una lista de comprensión :

 test = [[None] * 3 for _ in range(3)] 

(Tenga en cuenta que _ es solo una convención para la salida que es irrelevante, en este caso 0 , 1 y 2 )