- 1. 序列
- 2. 常用的序列结构
- 2.1 字符串
- 2.2 列表
- 列表的创建
- 常用方法
- 2.3 元组
- 元组的创建
- 常用方法
在内存中,序列是一块用来存放多个值的连续的内存空间,其存储的是对象的地址而不是对象的值;
2. 常用的序列结构- 2.1 字符串
- 2.2 列表
- 是能够存储 任意数目 ,任意类型 的数据集合;
- 是内置 可变序列 ,大小可变,可以随时增加 or 减少;
- 列表的创建
- ’ [ ] '创建;
- list()创建;
- range()创建整数列表;
a = list(range(10)) ---------- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- 推导式生成;
a = [x*2 for x in range(5)] ---------- [0, 2, 4, 6, 8]
- 常用方法
- 增加元素
方法 描述 备注 list.append(x) 将元素x添加至list尾部 速度快,推荐使用 list.extend(aList) 将列表aList中的所有元素添加至list的尾部 不创建新的对象 list.insert(index, x) 在指定位置index处,插入元素x 会影响处理速度,涉及大量元素时尽量避免使用 ’ + ’ 操作 拼接操作 会产生新的列表对象,不推荐 ’ * ’ 操作 多次重复原列表 生成新的列表对象 - 删除元素
方法 描述 del list[ index ] 删除指定index的元素 list.remove(x) 删除首次出现的元素x list.pop([ index ]) 删除index位置处的元素,默认为最后一个元素 list.clear() 删除所有元素 - 访问和计数
方法 描述 备注 list[ index ] 索引直接访问元素 index区间在[ 0, -1 ],超出会抛出异常 list.index(x) 获取元素x首次出现的索引位置 index(value, [ start, end ]) list.count(x) 获取元素x的出现次数 - 成员资格判断
方法 描述 备注 list.count(x) 返回:0–不存在;>0–存在 in 返回:True or False 比较简单,一般用这个 - 切片操作
[ start : end : step] - 列表排序
方法 描述 备注 list.sort() 对列表排序,默认升序,reverse = True能够设置为降序排列 不建立新列表对象 random.shuffle(list) 打乱顺序,需要import random 不建立新列表对象 list = sorted(list) 默认升序排列,reverse = True设置为降序排列 建立新列表对象 list = reversed(list) 进行逆序排列,但不修改原列表,返回值是一个逆序排列的迭代器对象 迭代次仅能使用一次
- 增加元素
- 2.3 元组
- 不可变 序列,没有增加、修改、删除元素等方法;
- 元组的创建
- ()直接创建,小括号可直接省略(若只有一个元素,则必须加逗号);
- tuple()创建元组,括号内为列表、字符串、其他顺序类型、迭代器;
- 生成器推导式创建元组
- 使用小括号;
- 生成的对象不是列表也不是元组,而是一个生成器对象;
- 可以通过生成器对象,转化成列表 or 元组;
- 只能访问一次,第二次为空;
- 可以使用 ’ .__ next __ ’ 方法依次访问生成器元素;
- 常用方法
- 访问
直接用索引访问,或使用切片; - 排序
元组只能使用内置函数sorted(tupleObj),并生成新的元组对象; - zip()
能够将多个列表对应位置的元素合为元组;
- 访问
- 元组的访问速度快于列表;