python copy.deepcopy parece superficial

Estou tentando inicializar uma lista de listas representando uma matriz 3x3:

import copy
m = copy.deepcopy(3*[3*[0]])
print(m)
m[1][2] = 100
print(m)

e a saída é:

[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 0, 100], [0, 0, 100], [0, 0, 100]]

o que não é o que eu esperava, pois os últimos elementos de cada linha são compartilhados! Obtive o resultado necessário usando:

m = [ copy.deepcopy(3*[0]) for i in range(3) ]

mas não entendo por que o primeiro (e mais simples) formulário não funciona. Não édeepcopy deveria ser profundo?

questionAnswers(3)

yourAnswerToTheQuestion