1. 列表

列表是什么

列表是一个由若干元素(不限制种类的对象)顺序组成的线性结构。 列表在内存中是顺序存放的。 列表是可索引、可迭代、可变的序列。 列表用[]表示。

线性结构的内存模型

列表

顺序连续存放,索引访问

链表

在内存中非连续存放

队列

顺序连续存放,只能对两端操作

先进后出,后进先出

列表的定义(初始化)

空列表:

  • lst = list()

  • lst = []

非空列表:

  • lst = [1,2,'a',[(1,2,'d')]]

  • lst = list(range(5))

列表的访问

Python中对列表使用索引下标)访问。 Python中支持正、负两种索引。 正索引从左开始,第一个是0;负索引是从右开始,最右一个是-1。 列表可以简单理解为从左到右排列的,左头右尾。 如果索引超界,会引发IndexError

列表的查询与判断

index

L.index(value, [start, [stop]])

返回一个数字,在start到stop区间内value第一次出现的索引。 时间复杂度O(n)

count

L.count(value)

返回一个数字,在list中value一共出现了多少次。 时间复杂度O(n)

in

value in L

返回一个布尔型,value是否在列表中出现 时间复杂度O(n)

列表的修改

索引访问修改

L[0]=1

返回一个None 时间复杂度O(1)

增加与插入元素

append

L.append(value)

返回一个None 时间复杂度O(1)

insert

L.insert(index, object)

将object插入index位置 返回一个None 时间复杂度O(n)

extend

L.extend(可迭代对象)

在列表后面追加可迭代对象的内容。

删除元素

remove

L.remove(value)

将value从列表中删除(1个) 返回None 如果没有value,返回ValueError。 时间复杂度O(n)

pop

L.pop([index]])

将索引index的从列表中删除,不指定index则删除最后一个 返回被删除值 时间复杂度O(n)或者O(1)

反转列表

L.reverse()

返回None,修改原列表

列表排序

L.sort(key=None, reverse=False)

用key操作之后排序,reverse表示是否反转

列表的复制(深浅拷贝)

copy

Last updated