列表
列表:用于存储任意数目、任意类型的数据集合。
列表是内置可变序列,是包含多个元素的有序连续的内存空间。列表的标准语法格式:a = [10,20,30,40]
,其中,10,20,30,40 这些称为:列表 a 的元素。
列表中的元素可以各不相同,可以是任意类型。比如:a = [10,20,'abc',True]
Python 的列表大小可变,根据需要随时增加或缩小。
列表对象的常用方法:
方法 | 要点 | 描述 |
---|---|---|
list.append(x) | 增加元素 | 将元素 x 增加到列表 list 尾部 |
list.extend(aList) | 增加元素 | 将列表 alist 所有元素加到列表 list 尾部 |
list.insert(index,x) | 增加元素 | 在列表 list 指定位置 index 处插入元素 x |
list.remove(x) | 删除元素 | 在列表 list 中删除首次出现的指定元素 x |
list.pop([index]) | 删除元素 | 删除并返回列表 list 指定为止 index 处的元素,默认是最后一个元素 |
list.clear() | 删除所有元素 | 删除列表所有元素,并不是删除列表对象 |
list.index(x) | 访问元素 | 返回第一个 x 的索引位置,若不存在 x 元素抛出异常 |
list.count(x) | 计数 | 返回指定元素 x 在列表 list 中出现的次数 |
len(list) | 列表长度 | 返回列表中包含元素的个数 |
list.reverse() | 翻转列表 | 所有元素原地翻转 |
list.sort() | 排序 | 所有元素原地排序 |
list.copy() | 浅拷贝 | 返回列表对象的浅拷贝 |
创建列表
使用[]
创建
a = [10,20,'gaoqi','sxt']
b = [] #创建一个空的列表对象
print(a)
列表元素的添加
append()方法
原地修改列表对象,是真正的列表尾部添加新的元素,速度最快,推荐使用。
a = [20,40]
a.append(80)
print(a) #结果:[20, 40, 80]
extend()方法
将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象。
a = [20,40]
print(id(a))
b = [50,60]
a.extend(b) #原对象修改
print(id(a))
a = a+b #产生新对象
print(id(a))
insert()插入元素
使用 insert()方法可以将指定的元素插入到列表对象的任意制定位置。这样会让插入位置后面所有的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。类似发生这种移动的函数还有:remove()、pop()、del(),它们在删除非尾部元素时也会发生操作位置后面元素的移动。
a = [10,20,30]
a.insert(2,100)
print(a) #结果:[10, 20, 100, 30]
乘法扩展
使用乘法扩展列表,生成一个新列表,新列表元素是原列表元素的多次重复。
a = ['jiamei',100]
b = a*3
print(a) #结果:['jiamei', 100]
print(b) #结果:['jiamei', 100, 'jiamei', 100, 'jiamei', 100]
列表元素的删除
del 删除
删除列表指定位置的元素。
a = [100,200,888,300,400]
del a[2]
print(a) #结果:[100,200,300,400]
pop()方法
pop()删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。
a = [10,20,30,40,50]
b1 = a.pop() #结果:b1=50
print(a,b1) #结果:[10, 20, 30, 40] 50
b2 = a.pop(1)
print(a,b2) #结果:[10, 30, 40],20
remove()方法
删除首次出现的指定元素,若不存在该元素抛出异常。
a = [10,20,30,40,50,20,30,20,30]
a.remove(20) #[10, 30, 40, 50, 20, 30, 20, 30]
a.remove(100) #报错:ValueError:list.remove(x): x not in list
列表元素访问和计数
通过索引直接访问元素
我们可以通过索引直接访问元素。索引的区间在[0, 列表长度-1]
这个范围。超过这个范围则会抛出异常。
a = [10,20,30,40,50,20,30,20,30]
print(a[2]) #结果:30
print(a[10]) #报错:IndexError: list index out of range
index()获取索引
index()可以获取指定元素首次出现的索引位置。语法是:index(value,[start,[end]])
。其中,start 和 end 指定了搜索的范围。
a = [10,20,30,40,50,20,30,20,30]
a.index(20) #结果:1
a.index(20,3) #结果:5 从索引位置3开始往后搜索的第一个20
a.index(30,5,7) #结果:6 从索引位置5到7这个区间,第一次出现30元素的位置
count()获得出现次数
count()可以返回指定元素在列表中出现的次数
a = [10,20,30,40,50,20,30,20,30]
a.count(20)
3
len()返回列表长度
len()返回列表长度,即列表中包含元素的个数。
a = [10,20,30]
len(a) # 3
成员资格判断
判断列表中是否存在指定的元素,我们可以使用 count()方法,返回 0 则表示不存在,返回大于 0 则表示存在。但是,一般我们会使用更加简洁的 in 关键字来判断,直接返回 True 或 False
a = [10,20,30,40,50,20,30,20,30]
20 in a # True
100 not in a # True
30 not in a # False