python矩阵块进行块插入的算法

你好,我想请问一下python能实现雷士C语言中的指针或地址的操作吗。
比如我想要定义某个矩阵为一个块,如

img

然后多个块直接拼接成一个更大的矩阵,如

img

这里我不想用类似for循环之类的一行行插入,这样时间复杂度会很高,我想要类似指针和地址的操作,一次直接插入一个块,我试图写这样一个代码测试

a=[[1,2],[2,1]]
b=[[1,2],[2,1]]
print(a.append(b))

但是输出结果为
None

这里我找到代码错误了

a=[[1,2],[2,1]]
b=[[1,2],[2,1]]
a.append(b)
print(a)

这样可以正确的输出了,但是我仍然不知道,这样写他是不是用了类似指针和地址的操作,还是他自动按一行行插入运算了

我测试过了,8*3000000的两个矩阵拼接,时间分别为21s和24s,除去算法优化的影响,两者时间几乎相近,应该内置函数依然是循环插入的

这里我还有个问题,像这种操作该怎么实现,不一行行算的话

直接生成1*n的矩阵
[[1],
[1],
.
.
.
[1]]
然后直接插入现有矩阵
[[0,2,6],
[5,2,3],
.
.
.
[7,2,5]]
变成
[[1,0,2,6],
[1,5,2,3],
.
.
.
[1,7,2,5]]

这里我还有个问题,像这种操作该怎么实现,不一行行算的话

原矩阵为
[[1,0,2,6],
[1,5,2,3],
.
.
.
[1,7,2,5]]

系数矩阵为
[[0,0,1,0],
[1,0,0,0],
.
.
.
[0,1,0,0]]
系数矩阵每行只有一个1,其余全是0,我要把系数矩阵乘以一个系数,比如乘2变成,
[[0,0,2,0],
[2,0,0,0],
.
.
.
[0,2,0,0]]
然后按照对应位置,将非0位置替换到原矩阵中,为
[[1,0,2,6],
[2,5,2,3],
.
.
.
[1,2,2,5]]

请问有什么办法可以实现我想要的结果,C语言也可以,最好能用python实现

>>> a = [[0,1,2,3],[0,2,3,1],[0,3,2,1]]
>>> b = [[1,1,2,3],[1,2,3,1],[1,3,2,1]]
>>> a.extend(b)
>>> a
[[0, 1, 2, 3], [0, 2, 3, 1], [0, 3, 2, 1], [1, 1, 2, 3], [1, 2, 3, 1], [1, 3, 2, 1]]
>>> t = [[1]]*6
>>> t
[[1], [1], [1], [1], [1], [1]]
>>> [i+j for i,j in zip(t,a)]
[[1, 0, 1, 2, 3], [1, 0, 2, 3, 1], [1, 0, 3, 2, 1], [1, 1, 1, 2, 3], [1, 1, 2, 3, 1], [1, 1, 3, 2, 1]]

难度大