列表list
定义
- 一个队列
- 列表内的个体称为元素,由若干元素items组成列表
- 元素可以为任意对象(数字、字符串、对象、列表等)
- 列表内元素有顺序,可使用索引
- 线性的数据结构
- 使用
[]表示 - 列表式可变的,可增加、减少
列表索引访问
- 索引也叫下标
- 正索引从左至右,从0开始
- 负索引从右至左,从-1开始
- 正负索引不可超界访问
list[index]
列表查询
index(value[,start,[stop]])- 通过值value从指定区间查找列表内元素是否匹配
- 匹配第一个立即返回索引
- 匹配不到报value Error
count(value)- 返回列表中匹配value的次数
len()- 内置函数,不会遍历,原理式取元数据
元素的操作
- 列表元素修改
- 索引访问修改:
list[index] = value
- 索引访问修改:
- 列表增加、插入元素
append(obj)- 列表尾部追加元素,返回None
- 返回None意味没有新的列表产生,就地修改
- 时间复杂是式O(n)
insert(index,obj)- 从指定索引index处插入元素obj
- 索引超界:超上界尾部追加,超下界头部追加
extend(iteratable)- 将可跌代对象的元素追加进来,返回None
- 单一元素不可追加
- 就地修改
+- 连接操作
- 产生新的列表,原列表不变
- 本质上式调用
__add__()方法
*- 重复操作,将本列表元素重复n次,返回新的列表
- 列表删除元素
remove(value)- 从左至右查找第一个匹配的value值
- 就地修改
- 效率?
pop([index])- 不指定索引index就从列表尾部弹出一个元素
- 指定索引就从指定处弹出第一个元素
- 效率?
clean()- 清除所有列表元素,剩下空列表
列表的其他操作
-
reverse()- 将列表元素反转,返回None
- 就地修改
-
sort(key=None,reverse=False)- 对列表元素进行排序,默认升序,就地修改
- key是一个函数,指定key如何排序
lst.sort(key=funcitionname)高阶函数
-
in-
返回bool值
-
举例:
+ [3,4] in [1,2,[3,4]] + for x in [1,2,3,4]:
-
列表复制
-
浅拷贝
copy()- 也称shadow copy,返回的是一个新列表,遇到引用类型,只是复制了一个引用而已
-
深拷贝
-
结构和引用分别拷贝
-
copy模块提供了deepcopy:
import copy lst1= copy.deepcopy(lst0)
-
其他
- 列表list、链表、queue、stack的差异
- 赋值即定义,动态语言与静态语言的差别
- 强、弱类型

浙公网安备 33010602011771号