matrix1 = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
matrix2 = [[11, 12, 13],
[21, 22, 23],
[31, 32, 33]]
mul = [[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]
for i in range(len(matrix1)): # matrix1 rows
for j in range(len(matrix2[0])): # matrix2 columns
for k in range(len(matrix2)): # matrix2 rows
mul[i][j] += matrix1[i][k] * matrix2[k][j]
# demonstration
print("mul[", i, "][", j, "] += matrix1[", i, "][", k, "](", matrix1[i][k], ") * matrix2[", k, "][", j, "]", matrix2[k][j])
print()
for row in mul:
for val in row:
print('{:5}'.format(val), end="")
print()
'''
run:
mul[ 0 ][ 0 ] += matrix1[ 0 ][ 0 ]( 1 ) * matrix2[ 0 ][ 0 ] 11
mul[ 0 ][ 0 ] += matrix1[ 0 ][ 1 ]( 2 ) * matrix2[ 1 ][ 0 ] 21
mul[ 0 ][ 0 ] += matrix1[ 0 ][ 2 ]( 3 ) * matrix2[ 2 ][ 0 ] 31
mul[ 0 ][ 1 ] += matrix1[ 0 ][ 0 ]( 1 ) * matrix2[ 0 ][ 1 ] 12
mul[ 0 ][ 1 ] += matrix1[ 0 ][ 1 ]( 2 ) * matrix2[ 1 ][ 1 ] 22
mul[ 0 ][ 1 ] += matrix1[ 0 ][ 2 ]( 3 ) * matrix2[ 2 ][ 1 ] 32
mul[ 0 ][ 2 ] += matrix1[ 0 ][ 0 ]( 1 ) * matrix2[ 0 ][ 2 ] 13
mul[ 0 ][ 2 ] += matrix1[ 0 ][ 1 ]( 2 ) * matrix2[ 1 ][ 2 ] 23
mul[ 0 ][ 2 ] += matrix1[ 0 ][ 2 ]( 3 ) * matrix2[ 2 ][ 2 ] 33
mul[ 1 ][ 0 ] += matrix1[ 1 ][ 0 ]( 4 ) * matrix2[ 0 ][ 0 ] 11
mul[ 1 ][ 0 ] += matrix1[ 1 ][ 1 ]( 5 ) * matrix2[ 1 ][ 0 ] 21
mul[ 1 ][ 0 ] += matrix1[ 1 ][ 2 ]( 6 ) * matrix2[ 2 ][ 0 ] 31
mul[ 1 ][ 1 ] += matrix1[ 1 ][ 0 ]( 4 ) * matrix2[ 0 ][ 1 ] 12
mul[ 1 ][ 1 ] += matrix1[ 1 ][ 1 ]( 5 ) * matrix2[ 1 ][ 1 ] 22
mul[ 1 ][ 1 ] += matrix1[ 1 ][ 2 ]( 6 ) * matrix2[ 2 ][ 1 ] 32
mul[ 1 ][ 2 ] += matrix1[ 1 ][ 0 ]( 4 ) * matrix2[ 0 ][ 2 ] 13
mul[ 1 ][ 2 ] += matrix1[ 1 ][ 1 ]( 5 ) * matrix2[ 1 ][ 2 ] 23
mul[ 1 ][ 2 ] += matrix1[ 1 ][ 2 ]( 6 ) * matrix2[ 2 ][ 2 ] 33
mul[ 2 ][ 0 ] += matrix1[ 2 ][ 0 ]( 7 ) * matrix2[ 0 ][ 0 ] 11
mul[ 2 ][ 0 ] += matrix1[ 2 ][ 1 ]( 8 ) * matrix2[ 1 ][ 0 ] 21
mul[ 2 ][ 0 ] += matrix1[ 2 ][ 2 ]( 9 ) * matrix2[ 2 ][ 0 ] 31
mul[ 2 ][ 1 ] += matrix1[ 2 ][ 0 ]( 7 ) * matrix2[ 0 ][ 1 ] 12
mul[ 2 ][ 1 ] += matrix1[ 2 ][ 1 ]( 8 ) * matrix2[ 1 ][ 1 ] 22
mul[ 2 ][ 1 ] += matrix1[ 2 ][ 2 ]( 9 ) * matrix2[ 2 ][ 1 ] 32
mul[ 2 ][ 2 ] += matrix1[ 2 ][ 0 ]( 7 ) * matrix2[ 0 ][ 2 ] 13
mul[ 2 ][ 2 ] += matrix1[ 2 ][ 1 ]( 8 ) * matrix2[ 1 ][ 2 ] 23
mul[ 2 ][ 2 ] += matrix1[ 2 ][ 2 ]( 9 ) * matrix2[ 2 ][ 2 ] 33
146 152 158
335 350 365
524 548 572
'''