概述
1.python程序的计算复杂性
2.问题和复杂性
3.计算和数据表示
用计算机解决问题,可以认为是实现某种信息表示形式的转换.
(1)数据data:计算机程序能够处理的符号形式的综合,数据是编码的信息。
(2)数据元素data element:数据的基本单位
(3)数据结构data structures:一组数据元素按照一定方式构成的复合数据形式,以及作用于这些元素或者结构上的一些函数或操作。常用数据结构有:
表/堆栈/队列/链接表/字符串/树/二叉树/字典/集合/图
4.数据结构
(1)数据结构的特征:逻辑结构(元素之间的抽象关系)、物理结构(逻辑结构在计算机存储器中的映射,又称存储结构)、行为特征(作用于数据结构上的各种运算,如检索、插入、删除元素)
(2)python数据结构:
一.典型数据元素:整数、浮点数、布尔值
二、python中标准数据结构:
正文序列类型str、序列类型list和tuple、集合类型set和frozenset、映射类型dict
三、简单介绍python数据结构
(1)字符串,类型名str,不变(immutable)正文序列类型
对象:字符的有穷序列
访问操作:求长度、取成员,取子串(切片),查找子串,判断成员字符类型,等
基于已有字符串构造新串:改变大小写,拼接,格式化(变换格式),子串替换,切分,等等,都是构造新串。
(2)元组,类型名tuple,不变序列类型
对象:任意元素的有穷序列,一个元组的生源可为不同类型的对象
序列的共有操作:成员判断(in,not in),取元素/切片,长度,元素检索/计数,最大/最小,拼接/重复拼接(产生新序列)
不变序列的唯一特殊操作是hash,它从任意个不变序列生成一个整数,具体映射方式由系统的实现确定
不变序列可以作为字典的关键码,可作为set/frozenset的元素
(3)表,类型名list,可变mutable的序列类型
对象:任意元素的序列
支持所有共有的序列操作
所有可变序列操作(改变被操作的表):元素替换(赋值),切片替换/删除,元素插入/删除,等等
(4)集合,类型名set和frozenset,分别为可变/不变汇集类型。其元素可以是数值或逻辑对象/字符串/不变序列等,元素值唯一
对象:任意满足条件的元素的汇集
frozenset支持所有不变集合操作:元素个数,元素判断,集合之间的关系(包含/相交),集合运算(并/交/差/对称差)等
set还支持可变集合操作:修改集合的运算(并/交/差/对称差),加入/删除元素等
集合的元素只能是不变对象,可求出hash值
(5)字典,类型名dict,可以看作是关键码和值的二元组的集合,其中关键码必须是不变对象
对象:一组关键码到一组值的映射
最基本操作:关键码-值二元组的加入和关键码检索
其他操作:元素个数,关键码存在判断,元素删除(基于关键码),另一些修改字典的操作,等
5.抽象数据类型
一、思想:采用某种数据形式表示所需的数据“类型”,并定义一组操作,实现对有关数据对象的所需操作
二、python提供了支持定义数据抽象的机制(python基本系统就是基于类和对象构造起来的):
(1)定义数据类型的标准python机制是class定义(类定义)
(2)定义好的类可以像内置类型一样使用,包括生成类的实例(对象,object)
(3)在类定义里,可以为本类的实例定义一组相关操作
6.类与面向对象编程
一、OOP objected oriented programming
(1)面向对象编程是指:定义类,生成类的对象,基于这种对象组织和描述计算,这一套做法称作OOP
(2)类:
最后
以上就是凶狠海燕为你收集整理的数据结构与算法-绪论-(二)python的全部内容,希望文章能够帮你解决数据结构与算法-绪论-(二)python所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复