1. 序列
在内存中,序列是一块用来存放多个值的连续的内存空间,其存储的是对象的地址而不是对象的值;
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()
能够将多个列表对应位置的元素合为元组; - 元组的访问速度快于列表;
|