1.序列
1.1概念
- 一种数据结构,用于保存有序的数据,所有在序列中的数据都有一个唯一的位置(索引),并且按照添加数据的顺序分配索引
eg. 添加第一个数据,分配索引为1,添加第二个数据分配索引为2 - 数据结构指计算机中数据的存储方式
1.2 序列的分类
- 可变序列-列表
- 不可变序列-字符串
1.3列表的创建
- lst = [1,2,3,4,5,6, True,[1,2,3],“456”] 注:列表中可以存储各种类型的数据
1.4获取列表中的元素
- 可以通过**索引(index)**获取列表中的元素 注:列表中第一个索引为0
- 可以直接 list[索引] 的方式来调取元素 注:-2即倒数第二个数据
- 注:通过 len(list) 的方式获得列表的长度
1.5切片
- 从现有列表中获取一个子列表
- list[开始:结束] 注:左取又不取
- **list[开始:] **
- 省略结束位置则取到最后
**list[ :结束] **
省略开始位置则从第一个开始取
**list[ : ] **
开始和结束都省略则全取 - 注:切片操作不会对原列表做更改
- list[开始:结束:步长] 注:步长不写则默认为1,步长为负数则倒着取,不能为0
步长为n,则间隔n-1个数据取一个,可以理解为n个数据为一段,每段内只取首个
1.6通用操作
- 加号-拼接两个列表
- 乘号可以看成加法
- in 用来检查指定元素是否在列表中,如果在则返回True
not in ,类比,不在则返回True - min() 获取列表中的最小值
- max() 获取最大值
- lis.index:获取指定元素在列表中的位置
注:第一个元素的位置是0,若有两个相同的元素则返回就近的第一个,
可以指定开始检索的位置–lis.index(“spiser man”, 3)则从第三个开始检索,这样可以越过第一个spider man,找第二个,或者止指定区间–lis.index(“spiser man”, 3,7),第二个参数表示查找的起始位置,第三个元素为终止位置 - lis.count:统计指定元素在列表中出现的次数
1.7修改列表
1.7.1通过索引
- list[3]="…",修改列表中索引为3的数据 注意用[ ],不可以超出最大索引
1.7.2 通过del
- del list[2],修改指定索引的数据,或者与切片结合,del list[0:2]
1.7.3 通过切片
- list[0:3]="abcdf"将0-3的数据改变
- 注意是将abcdf拆成单个字符再分别放进去,有几个就要放几个,不必与待修改的数据个数相同,若list[0:3]=“abcdf”,“ada”,则将"abcdf",“ada”看成两个字符串,不再拆封成单个字符,可以加[]来包裹
- 必须传递一个序列,list[0:3]=1234是不被允许的
- list[0:0]是在所有元素之前插入额=了一个元素
- list[::2]="…"一个值去赋多个值是不被允许的,这个时候需要数量对等才能成功修改
- list[0:3]=[],通过切片进行删除
1.7.4 方法
- list,append(),向列表最后添加元素只能添加一个元素
- list,insert() ,向指定位置插入一个元素,原本这个位置上的元素往后走
- list.extend(),使用新序列扩展当前序列,可以添加多个元素,注意里面要写成[",","sss]的形式,没有[]会报错
- list.clear(),清空
- list.pop(),默认删除最后一个元素,加索引则删除相应元素,且具有返回值,返回删除的数据
- list.remove(","),删除指定元素,若有多个则只删除第一个
- list.reverse(),反转列表
- list.sort(),对列表内容进行排序,默认是升序
降序:list.sort(reverse=True)
1.8遍历列表
1.8.1
- for 变量 in 序列
代码块 - 序列中有多少个数据就循环几次,第n次循环将第n个数据的值赋给变量
1.8.2 range
- range()