简介
列表这一数据结构最常用
特性:
有顺序,可以使用索引(从0开始);
元素可以使任意对象;
是线性的数据结构;
列表是可变的;
列表的定义、初始化
lst=list()
lst=[]
lst=[2,6,9,'ab']
lst=list(range(1,5))
列表的索引访问
索引,也叫下标,从左至右,从0开始;从右向左,从-1开始
访问列表元素,索引不可以超界
列表查询
index(value,[start,[stop]])
count(value)

index和count的时间复杂度是O(n),列表规模大的话,效率很低
求列表长度的话用len(),len()效率高
列表元素的修改及插入


insert的时间复杂度是O(n)
注意:修改的元素时候索引不要超界,插入元素可以超界
扩展列表
加一个元素用append,就地修改列表
列表尾部追加元素,返回None
append的时间复杂度是O(1)

加多个元素可以用extend()方法(就地修改)



注意:列表乘法容易出现的坑

x即使乘了3,但指向的是同样的内存地址,所以都会改成8
删除列表元素
remove(value) #从左到右,删除找到的第一个value并将其移除,就地修改,效率差
pop()或pop(index) #pop()弹出最后一个元素,指定index则弹出指定元素,效率由弹出位置而定
clear() #清除列表所有元素,结果为空列表,但会产生很多垃圾,引起频繁GC(垃圾回收)
列表其他操作
reversed() #将列表反转,就地修改,效率低

in() #判断是否是成员

sort() #排序,就地修改,默认升序

列表复制

lst1=lst0这一步只是让lst1的地址指向指向了lst0
shadow copy返回一个新的列表

再看


deep copy

网友评论