Às vezes, no mundo da programação competitiva, precisamos inicializar a matriz, mas não queremos fazer isso de forma mais longa usando um loop. Precisamos de um atalho para isso. Este tipo de problema é bastante comum no domínio da programação dinâmica. Vamos discutir algumas maneiras pelas quais isso pode ser feito.
Método # 1: Usando a compreensão de listas A compreensão de 
listas pode ser tratada como uma forma abreviada para executar esta operação específica. Na compreensão de lista, podemos inicializar a lista interna e então estender essa lógica a cada linha novamente usando a compreensão de lista.
 

N = 5
M = 4
res = [ [ 0 for i in range(M) ] for j in range(N) ] 
print("The matrix after initializing : " + str(res)) 
Resultado
A matriz após a inicialização: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0 , 0, 0]]

 
Método # 2: Usando compreensão de lista + operador “*” 
Este problema também pode ser simplificado usando o operador *, que pode reduzir um pouco a maneira tediosa como a tarefa é realizada e pode simplesmente usar o operador multiplicar para estender a inicialização para todas as N linhas.
 

N = 5
M = 4
res = [ [0 for i in range(M)]] * N 
print("The matrix after initializing : " + str(res)) 
Resultado
A matriz após a inicialização: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0 , 0, 0]]

Método # 3: Usando o operador + “*” duas vezes 
Semelhante ao exemplo acima, também podemos inicializar as colunas usando o operador “*” duas vezes.
 



  
N = 5
M = 4
res = [[0] * M] * N 
print("The matrix after initializing : " + str(res)) 
Resultado
A matriz após a inicialização: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0 , 0, 0]]