你好,我想请问一下python能实现雷士C语言中的指针或地址的操作吗。
比如我想要定义某个矩阵为一个块,如
然后多个块直接拼接成一个更大的矩阵,如
这里我不想用类似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实现