列表
列表相当于数组
列表的创建方式
列表的特点
- 列表元素按顺序有序排序
- 索引映射唯一一个数据
- 列表可以存储重复数据
- 任意数据类型混存
- 根据需要动态分配和回收内存
列表的查询操作
获取指定元素的索引
index()方法
- 如果列表中存在 N 个相同元素,只返回相同元素中的第一个元素的索引
- 如果查询的元素不存在,则会抛出
ValueError
- 可以在指定的 start 和 stop 之间进行查找
获取单个元素的索引
- 正向索引从 0 到 N-1
- 逆向索引从-N 到-1
- 指定索引不存在,抛出
IndexError
获取列表中的多个元素(切片操作)
语法格式
列表名[ start : stop: step ]
切片结果
原列表片段的拷贝(新列表对象)
切片范围
[start, stop)
step 的取值
- step 默认为 1,简写为[ start : stop ]
- step 为正数(从 start 开始往后计算切片)
- [ : stop : step ] -> 切片的第一个元素默认是列表的第一个元素(start 省略表示默认,值为 0)
- [ start :: step ] -> 切片的最后一个元素默认是列表的最后一个元素(stop 省略表示默认,切到原列表的最后一个元素)
- step 为负数(从 start 开始往前计算切片)
- [ : stop : step ] -> 切片的第一个元素默认是列表的最后一个元素
- [ start :: step ] -> 切片的最后一个元素默认是列表的第一个元素
列表元素的判断及遍历
-
判断指定元素在列表中是否存在
元素 in / not in 列表名
-
列表元素的遍历
for 迭代遍历 in 列表名:
列表元素的增加操作
方法 | 描述 |
---|
append() | 在列表末尾添加一个元素,不会创建一个新的列表对象 |
extend() | 在列表末尾至少添加一个元素 |
insert() | 在列表任意位置添加一个元素 |
切片 | 在列表任意位置添加至少一个元素 |
列表元素的删除操作
方法 | 描述 |
---|
remove() | 一次删除一个元素,重复元素只删除第一个,元素不存在抛出ValueError |
pop() | 删除一个指定索引位置上的元素,指定索引不存在抛出IndexError ,不指定索引则默认删除列表最后一个元素 |
切片 | 一次至少删除一个元素,产生一个新的列表对象(被切掉的元素形成一个新的列表对象) |
clear() | 清空列表 |
del | 删除列表 |
列表元素的修改操作
-
为指定索引的元素赋一个新值
-
为指定的切片赋一个新值
列表的排序操作
- 调用sort()方法,默认按照从小到大的顺序进行排序,如指定 reverse = True,则进行降序排序
- 调用内置函数 sorted(),默认按照从小到大的顺序进行排序,如指定 reverse = True,进行降序排序,产生一个新的列表对象
列表生成式
语法格式
[ 表示列表元素的表达式 for 自定义变量 in 可迭代对象 ]