问题描述:所谓稀疏矩阵是指,矩阵中大部分元素的值为0,只有少量非0元素。对于稀疏矩阵,如果存储所有元素的话,浪费空间较多,一般采取的方式是只存储非0元素及其位置。
思考下面的几个问题:
1)如何使用字典来表示稀疏矩阵呢?“键”是什么,“值”是什么?
2)如果使用字典表示稀疏矩阵的话,如何支持矩阵与标量的乘、除运算,以及矩阵之间的加、减、乘运算?
3)如何把二维列表形式的矩阵转换为稀疏矩阵的形式,如何把稀疏矩阵转换为普通矩阵的形式?
4)写好的代码有没有冗余,有没有简化和复用的可能,有没有可以优化的可能?
试着想一想,写一写,然后到文末查看参考代码。
----------相关阅读----------
教学课件
1900页Python系列PPT分享一:基础知识(106页)
1900页Python系列PPT分享二:Python序列(列表、元组、字典、集合)(154页)
1900页Python系列PPT分享三:选择与循环结构语法及案例(96页)
1900页Python系列PPT分享四:字符串与正则表达式(109页)
1900页Python系列PPT分享五:函数设计与应用(134页)
1900页Python系列PPT分享六:面向对象程序设计(86页)
1900页Python系列PPT分享七:文件操作(132页)
1900页Python系列PPT分享八:异常处理结构与程序调试、测试(70页)
2000页Python系列PPT分享九:(GUI编程)(122页)
报告PPT(163页):基于Python语言的课程群建设探讨与实践
微课系列:
微课系列(四):Python中map对象的几种用法和注意事项
微课系列(二):列表方法sort()和内置函数sorted()的稳定排序特点
微课系列(一):Python列表remove()方法工作原理
系列题库分享
相关阅读
Python内置函数sorted()和列表方法sort()的排序原理
--------董付国老师Python系列图书--------
1)《Python程序设计(第2版)》清华大学出版社(2018年8月第9次印刷)
2)《Python可以这样学》清华大学出版社(2018年7月第6次印刷)(本书已在台湾发行繁体版)
3)《Python程序设计基础(第2版)》清华大学出版社(2018年9月第5次印刷)
4)《中学生可以这样学Python》清华大学出版社(2018年9月第3次印刷)
5)《Python程序设计开发宝典》清华大学出版社(2018年2月第3次印刷)
6)《玩转Python轻松过二级》清华大学出版社(2018年7月第3次印刷)
7)《Python程序设计基础与应用》机械工业出版社(2018年9月第1次印刷)
董老师127课免费视频地址: https://pan.baidu.com/s/1jJeAs8Q 密码: px59
参考代码:
把上面的代码保存为SparseMatrix.py,下面是这个稀疏矩阵类的简单用法: