问题描述:所谓稀疏矩阵是指,矩阵中大部分元素的值为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程序设计基础》教学参考大纲

计算机相关专业“Python程序设计”教学大纲(参考)

报告PPT(123页):Python编程基础精要

《Python程序设计》实验指导书(30个实验)

微课系列:

微课系列(四):Python中map对象的几种用法和注意事项

微课系列(三):Python列表中存储的是元素的引用

微课系列(二):列表方法sort()和内置函数sorted()的稳定排序特点

微课系列(一):Python列表remove()方法工作原理

系列题库分享

1000道Python题库系列分享一(17道)

1000道Python题库系列分享二(48道)

1000道Python题库系列分享三(30道)

1000道Python题库系列分享四(40道)

1000道Python题库系列分享五(40道)

1000道Python题库系列分享六(40道)

1000道Python题库系列分享七(30道)

1000道Python题库系列分享八(29道)

1000道Python题库系列分享九(31道)

1000道Python题库系列分享十(37道)

1000道Python题库系列分享十一(9道)

1000道Python题库系列分享十二(9道编程题)

1000道Python题库系列分享13(22道填空题)

1000道Python题库系列分享14(1道代码阅读题)

相关阅读

Python中超类是如何知道自己被继承的

图解Python 3.x多继承时方法解析顺序MRO

Python内置函数sorted()和列表方法sort()的排序原理

面向对象程序设计中“超类”和“子类”概念的来历

Python多态原理与示例演示

Python类中公开方法、私有方法和特殊方法的继承原理

Python实现带有阻塞和超时放弃功能的队列结构

对Python列表进行封装和二次开发实现自定义栈结构

--------董付国老师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,下面是这个稀疏矩阵类的简单用法:

Python字典二次开发实现稀疏矩阵表示与简单计算相关推荐

  1. 据说这是熟练掌握python的爷们_dongbei 是一门基于 Python 3 二次开发的东北方言编程语言...

    dongbei - 东北方言编程语言 学编程,就整东北浪! 体格咋地 扫码关注原作者微信公众号"老万故事会": 引言 dongbei是啥?它是一门以东北方言词汇为基本关键字的以人为 ...

  2. abaqus python二次开发攻略_Abaqus二次开发Python脚本二次开发

    在上一篇博文中简要介绍了Abaqus中FORTRAN子程序二次开发,那么这次将对Abaqus的Python脚本二次开发进行概述. 就像在上一篇博文中提到的,基于Python的脚本开发又可以细分为如下三 ...

  3. Python SolidWorks 二次开发---SolidWorks另存文件为其他格式

    Python SolidWorks 二次开发-SolidWorks另存文件为其他格式 Python SolidWorks 二次开发-SolidWorks另存文件为其他格式 文章目录 Python So ...

  4. CANanlystII 基于python的二次开发实践

    前期,我已经编写过一篇<CANanlystII 基于linux的二次开发实践>这篇博客承接上一篇博客,所以背景知识和测试场景,就不再赘述. 背景知识和测试场景,可以查阅如下: CANanl ...

  5. Python SolidWorks 二次开发—SolidWorks中的事件实现

    Python SolidWorks 二次开发-SolidWorks中的事件实现 文章目录 Python SolidWorks 二次开发---SolidWorks中的事件实现 前言 一.如何实现com事 ...

  6. Python SolidWorks 二次开发---SolidWorks保存文件

    Python SolidWorks 二次开发-SolidWorks保存文件 Python SolidWorks 二次开发-SolidWorks保存文件 文章目录 Python SolidWorks 二 ...

  7. Quarkus 实战二:开发REST ful 服务实现简单的curd功能

    Quarkus 实战二:开发REST ful 服务实现简单的curd 概述 Quarkus集成了RESTEasy,这是一种用于定义REST API的JAX-RS实现 参考文档: Quarkus 文档 ...

  8. python revit二次开发_Revit怎么二次开发?Revit开发问题汇总

    现如今Revit软件还无法满足所有领域的工作需求,然而其二次开发技术能够适应用户个性化的定制要求,来扩展软件功能或对其功能进行修正. 为了更大程度上方便二次开发,开发商将集成的数据库函数封装到Revi ...

  9. python 微信二次开发_python微信公众账号二次开发

    微信公众号开发网址:https://mp.weixin.qq.com/ 注意:申请公众账号后,系统需要一天的审核时间后,才能进行二次开发: 创建步骤: 1.申请免费且支持python的服务器,新浪云s ...

最新文章

  1. WCF动态添加ServiceKnownType
  2. [CF482B]Interesting Array
  3. UA MATH566 统计理论 Fisher信息论的性质下
  4. COMBOBOX绑定DICTIONARY做为数据源
  5. datatable 导入mysql 解决_将DataTable中的数据导入到数据库中
  6. latex 表格中虚线_如何识别和修复表格识别中的虚线
  7. 【大牛疯狂教学】深入拆解java虚拟机百度云
  8. linux环境部署ltmj,Linux系统安装与简单配置 图文.docx
  9. 【计算机网络】计算机网络体系结构
  10. yum安装报错Protected multilib versions:
  11. 终极人机大战要来了?AI打星际2即将直播,DeepMind暴雪发出神秘预告
  12. Hive SQL中的concat、concat_ws、concat_group列转行,行转列
  13. 百度要革自己的命?移动搜索或取消PC网页收录
  14. python json转换为dict的编码问题_python中json和字符编码的转换
  15. Excel一元线性回归分析
  16. 一个程序员未来5年的自我规划
  17. 构造体中变量后面的冒号_flow中问号在参数后面和在冒号有什么区别?declare type的作用是?看英文文档有点一知半解...
  18. 360浏览器,打开一个,为什么后台有多个360进程?
  19. DPDK ring简单说明
  20. Linux rescue

热门文章

  1. CentOS下安装Tomcat并配置JRE
  2. php数据库单循环显示,php利用while单循环实现100行10列表格输出且每行颜色不一样...
  3. tensor如何实现转置_PyTorch中的傅立叶卷积:通过FFT有效计算大核卷积的数学原理和代码实现...
  4. mysql表分区数量限制_MySQL分区表的局限和限制详解
  5. python编译为机器码_通过 GraalVM 将 Java 程序编译成本地机器码!
  6. word怎么改一张纸的方向_折纸手工DIY,纸碗怎么折?一张纸就搞定,折法简单,宝宝也能折...
  7. php 中 sql 查询语句怎么写,sql查询语句有哪些
  8. 玩转 SpringBoot2.x 之自定义配置类整合Druid(Mybatis版)
  9. Job 存储和持久化 (第五部分)
  10. android datebinding学习