Inicializando a matriz 2D em Python

Eu tenho um problema com a inicialização de uma matriz 2D em python. Eu quero uma matriz 6x6, eu fiz

arr = [[None]*6]*6

Mas quando eu faço

>>> arr[1][2]=10
>>> arr
[[None, None, 10, None, None, None], [None, None, 10, None, None, None], [None, None, 10, None, None, None], [None, None, 10, None, None, None], [None, None, 10, None, None, None], [None, None, 10, None, None, None]]

ota: Acabei de definir um item e seu "replicado" em todas as linhas. O que há de errado? Eu acho que tem a ver com a referência à mesma lista, mas como faço para corrigir isso?

Eu imagine

for key, _ in algos.items():
    algoData[key] = []
    for i in range(0,6):
        algoData[key].append([])
        for j in range(0,6):
            algoData[key][i].append(None)

works, mas parece muito tempo para inicializar uma matriz 6x6 vazia, e se eu quiser uma matriz 10000x10000, será muito ineficiente?

ATUALIZA

Posso também inicializar um dicionário de matrizes 2D? Eu tenho um dicionário como:

algos = { "FIFO": ..., "LRU": ..., "Random": ... }

Quero inicializar um dicionário como abaixo:

algoData = { "FIFO": 2D arr, "LRU": 2D arr, "Random": 2D arr }

questionAnswers(4)

yourAnswerToTheQuestion