问题描述:所谓稀疏矩阵是指,矩阵中大部分元素的值为0,只有少量非0元素。对于稀疏矩阵,如果存储所有元素的话,浪费空间较多,一般采取的方式是只存储非0元素及其位置。
思考下面的几个问题:
1)如何使用字典来表示稀疏矩阵呢?“键”是什么,“值”是什么?
2)如果使用字典表示稀疏矩阵的话,如何支持矩阵与标量的乘、除运算,以及矩阵之间的加、减、乘运算?
3)如何把二维列表形式的矩阵转换为稀疏矩阵的形式,如何把稀疏矩阵转换为普通矩阵的形式?
4)写好的代码有没有冗余,有没有简化和复用的可能,有没有可以优化的可能?
试着想一想,写一写,然后到文末查看参考代码。
董老师127课免费视频地址: https://pan.baidu.com/s/1jJeAs8Q 密码: px59
参考代码:
把上面的代码保存为SparseMatrix.py,下面是这个稀疏矩阵类的简单用法: