线性数据结构

本文详细介绍了Python中的线性数据结构——列表,包括列表的定义、初始化、索引访问、增加和插入元素、删除元素以及随机数的相关操作。列表作为可变的数据结构,可以存储任意类型的对象,并通过索引进行访问和修改。文中还探讨了列表与其他数据结构如元组、队列和栈的区别。
摘要由CSDN通过智能技术生成

分类

  • 数值型:int、 float、 complex、 bool
  • 序列对象:字符串 str、列表lis、ttuple
  • 键值对:集合set、字典dict

数值型

  • 数值型
     int、 float、 complex、 bool都是class, 1、 5.0、 2+3j都是对象即实例
     int: python3的int就是长整型,且没有大小限制,受限于内存区域的大小
     float:有整数部分和小数部分组成。支持十进制和科学计数法表示。C的双精
    度型实现
     complex:有实数和虚数部分组成,实数和虚数部分都是浮点数, 3+4.2J
     bool: int的子类,仅有2个实例True、 False对应1和0,可以和整数直接运算
  • 类型转换( built-in)
     int(x) 返回一个整数
     float(x) 返回一个浮点数
     complex(x)、 complex(x,y) 返回一个复数
     bool(x) 返回布尔值,前面讲过False等价的对象

列表list

 一个队列,一个排列整齐的队伍
 列表内的个体称作元素,由若干元素组成列表
 元素可以是任意对象(数字、字符串、对象、列表等)
 列表内元素有顺序,可以使用索引
 线性的数据结构
 使用 [ ] 表示
 列表是可变的
 列表list、链表、 queue、 stack的差异

列表list定义 初始化

 list() -> new empty list
 list(iterable) -> new list initialized from iterable’s items
 列表不能一开始就定义大小
lst = list()
lst = []
lst = [2, 6, 9, ‘ab’]
lst = list(range(5))

列表索引访问

 索引,也叫下标
 正索引:从左至右,从0开始,为列表中每一个元素编号
 负索引:从右至左,从-1开始
 正负索引不可以超界,否则引发异常IndexError
 为了理解方便,可以认为列表是从左至右排列的,左边是头部,右边是尾部,
左边是下界,右边是上界
 列表通过索引访问
 list[index] , index就是索引,使用中括号访问

列表查询

  • index(value,[start,[stop]])
     通过值value,从指定区间查找列表内的元素是否匹配
     匹配第一个就立即返回索引
     匹配不到,抛出异常ValueError
  • count(value)
     返回列表中匹配value的次数
  • 时间复杂度
     index和count方法都是O(n)
     随着列表数据规模的增大,而效率下降

列表增加、插入元素

  • append(object) -> None
     列表尾部追加元素,返回None
     返回None就意味着没有新的列表产生,就地修改
     时间复杂度是O(1)
  • insert(index, object) -> None
     在指定的索引index处插入元素object
     返回None就意味着没有新的列表产生,就地修改
     时间复杂度是O(n)
     索引能超上下界吗?
     超越上界,尾部追加
     超越下界,头部追加

列表增加、插入元素

  • extend(iteratable) -> None
     将可迭代对象的元素追加进来,返回None
     就地修改
    • -> list
       连接操作,将两个列表连接起来
       产生新的列表,原列表不变
       本质上调用的是__add__()方法
    • -> list
       重复操作,将本列表元素重复n次,返回新的列表

列表删除元素

  • remove(value) -> None
     从左至右查找第一个匹配value的值,移除该元素,返回None
     就地修改
     效率?
  • pop([index]) -> item
     不指定索引index,就从列表尾部弹出一个元素
     指定索引index,就从索引处弹出一个元素,索引超界抛出IndexError错误
     效率?指定索引的的时间复杂度?不指定索引呢?
  • clear() -> None
     清除列表所有元素,剩下一个空列表

随机数

 random模块
 randint(a, b) 返回[a, b]之间的整数
 choice(seq) 从非空序列的元素中随机挑选一个元素,比如random.choice(range(10)),
从0到9中随机挑选一个整数。 random.choice([1,3,5,7])
 randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个
随机数,基数缺省值为1。 random.randrange(1,7,2)
 random.shuffle(list) ->None 就地打乱列表元素
 sample(population, k) 从样本空间或总体(序列或者集合类型)中随机取出k个不同的元
素,返回一个新的列表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值