【Python-数据结构】——线性结构
《Python数据结构》@EnzoReventon
Python 数据结构 —— 线性结构 Array
1. 关于Array的一些简介
数组是最常用的一种线性结构。除了数组之外,其实Python还内置了一个array的模块,许多人没有用过。
Python的array模块和数组一样也是内存连续的,存储的结构也是属于同一种类型,而且只能存储数值和字符。
Python关于array的技术文档:点击此处
在创建Array之前,我们还需要说一下最常用的list,list有许多操作,如下表所示:
操作 | 解释 | 平均时间复杂度 |
---|---|---|
list.index(x[, start[, end]]) | x-- 查找的对象。start-- 可选,查找的起始位置。end-- 可选,查找的结束位置。 | O(1) |
list.append(obj) | 在列表末尾添加新的对象 | O(1) |
list.insert(index, obj) | 将对象插入列表 | O(n) |
list.pop(index) | 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 | O(1) |
list.remove(obj) | 移除列表中某个值的第一个匹配项 | O(n) |
list.reverse() | 反向列表中元素 | O(n) |
list.count(obj) | 统计某个元素在列表中出现的次数 | O(n) |
2. 下面就是代码实现
2.1 类定义与方法的编写
class Array(): #定义一个Array的类,类中包含初始化、获取value、设置value等方法def __init__(self,size): #初始化self.__size = size #记录容器空间self.__item = [None] * size #分配空间self.__length = 0def __getitem__(self, index): #获取数据,index为你要获取数据的索引号return self.__item[index]def __setitem__(self, index, value): #增加数据,index为索引,表示你要放在什么地方,value为你要存储的数据self.__item[index] = value #增加数据self.__length += 1 #包含数据的长度+1def __len__(self): #Array所包含数据的数量return self.__sizedef clear(self, value=None): #清空该Array中的所有内容for i in range(self.__size):self.__item[i] = valuedef __iter__(self): #遍历Array中的数据for v in self.__item:print(v)
2.2 测试一些方法
2.2.1 初始化/实例化Array,向Array中插入数据,并查询指定index的Array内容
也可以直接使用定义的方法__getitem__或者__setitem__,在此因为使用下面的方法比较简单,所以展示下面比较常用的方法。
if __name__ == '__main__':a = Array(10) #实例化Array为a,其中定义size为10a[2] = 20 #向Array a中index为2的空间中插入数据10print(a[2]) #打印index为2的a内容
结果:输出为20
2.2.2 获取Array的长度
if __name__ == '__main__':a = Array(10)a[2] = 20print(a.__len__()) #打印Array的长度
结果:输出为10,因为我们在实例化Array a的时候定义了size为10.
2.2.3 遍历Array
if __name__ == '__main__':a = Array(10)a[2] = 20a[4] = 40a[6] = 60a.__iter__()
结果:刚刚赋值的index内容打印出来了,未赋值的为None
2.2.4 清空Array
if __name__ == '__main__':a = Array(3) #实例化一个size为3的Array aa[0] = 20a[1] = 40a[2] = 60a.clear() #清空Arraya.__iter__() #遍历Array并print
结果:输出为None
【Python-数据结构】——线性结构相关推荐
- 数据结构——线性结构总结
数据结构--线性结构总结 数据结构--线性结构总结 写在前面 线性结构的特点 线性表 栈 队列 相关的STL容器的基本操作 vector list stack queue deque 习题 线性表相关 ...
- 数据结构——线性结构
简单地说,线性结构就是表中各个结点具有线性关系.如果从数据结构的语言来描述,线性结构应该包括如下几点: 1.线性结构是非空集. 2.线性结构有且仅有一个开始结点和一个终端结点. 3.线性结构所有结点都 ...
- java中线性结构的例子_java数据结构--线性结构
一.数据结构 数据结构由数据和结构两部分组成,就是将数据按照一定的结构组合起来,这样不同的组合方式有不同的效率,可根据需求选择不同的结构应用在相应在场景.数据结构大致 分为两类:线性结构(如数组,链表 ...
- 常用数据结构--线性结构
数据结构是计算机存储.组织数据的方式.常见的数据结构分类方式如下图: 常用的线性结构有:线性表,栈,队列,循环队列,数组.线性表中包括顺序表.链表等,其中,栈和队列只是属于逻辑上的概念,实际中不存在, ...
- 数据结构:线性结构和非线性结构的理解
我们知道数据结构是计算机存储.组织数据的方式.常见的数据结构分类方式如下图: 我们这里主要说一下线性结构和非线性结构 1. 线性结构 线性结构是什么? 数据结构中线性结构指的是数据元素之间存在着&qu ...
- 数据结构——线性结构(线性表)
文章目录 一. 线性结构概述 1. 线性结构(线性表的逻辑结构)的定义 2. 线性表的特点 二. 线性结构分类 1. 连续存储[顺序表] (1). 什么叫数组 (2). 顺序表算法的基本操作 (3). ...
- 数据结构线性结构和非线性结构
1.线性结构 特点:1)数据元素之间存在一对一的线性关系 2)线性存储结构分为顺序存储结构和链式结构. 3)顺序表中存储元素(地址)是连续的 4)链表中存储的元素不一定是连续的 5)线性结构常见的有: ...
- 数据结构Python版--线性结构
文章目录 线性数据结构 栈 匹配括号 进制转换问题 前序.中序和后序表达式 队列 传土豆 打印任务 双端队列 回文检测器 列表 无序列表 有序列表 线性数据结构 栈,队列,双端队列和列表都是有序的数据 ...
- 数据结构与算法(python) 线性结构:无序列表 Unordered List以及链表
参考自 MOOC数据结构与算法Python版 目录 一.什么是列表List 二.抽象数据类型List 2.1 List的基本操作 三. Python实现链表:节点Node 3.1 从尾到头打印链表 一 ...
- 数据结构与算法(python) 线性结构:有序列表Ordered List
参考自 MOOC数据结构与算法Python版 目录 一.什么是有序表OrderedList 二.抽象数据类型:有序表OrderedList 2.1 OrderedList的基本操作 2.2 Pytho ...
最新文章
- 详解C#委托,事件与回调函数
- 购物车的实现(jsp的session+Java的Map的结合)
- lr不能直接转ps编辑_摄影后期调色软件,Lr软件包
- vuejs中 vmode_在VueJS中发现封闭的力量
- python装饰器简单理解_python装饰器的简单理解
- JavaScript基础之'script'Tag的使用
- 多层full-connect 神经网络测试
- kaggle初探--泰坦尼克号生存预测
- Python.习题八 文件与与异常(上)
- Opencv 实战五 图像拼接
- excel中计算单元格值等于1的数量
- 文件备份 服务器,服务器文件备份
- MIT6.828学习之homework9:Barriers
- 软件设计:“度”、“裁剪”与“变通”
- arthas热更新线上代码
- 使用HTML写一个个人简历
- 从业了八年程序员觉得已经是非常的枯燥了
- 《C语言程序设计》(谭浩强第五版) 第8章 善于利用指针 习题解析与答案
- linux 怎样查看设备信息,Linux查看设备信息命令
- h5 数字变化_基于JS实现数字动态变化显示效果附源码