一、类型转换
1、适用对象:可以用for循环遍历的类型都可以用list()功能转化为列表,即把每次循环取得的值作为元素组成一个列表。
a = 'abc'
print(list(a)) # 结果为 ['a', 'b', 'c']
b = {'aa': 1, 'bb': 2, 'cc': 3}
print(list(b)) # 因为每次循环取的是key值,所以结果为 ['aa', 'bb', 'cc']
二、内置功能
1、按索引取值,可以正向取也可以反向取,也可以改该值。若索引不存在,则取值或修改操作都会报错。
a = [1,2,'c']
print(a[0]) # 按索引取值有返回值,结果为 1
a[-1] = 'cc' # 反向索引并重新赋值
print(a) # 结果为 [1, 2, 'cc']
a[4] = 4 # 4号索引不存在,报错
2、切片:理同字符串,相当于拷贝列表,但是为浅拷贝。
a = [0, 1, 2, 3, 4, 5, 6, 7, 8]
print(a[1:4]) # 从1号索引切到3号索引,结果为 [1, 2, 3]
print(a[:]) # 不填参数则默认从头到尾,相当于完整拷贝原列表,结果为 [0, 1, 2, 3, 4, 5, 6, 7, 8]
print(a[2:9:3]) # 从2号索引切到9号索引,间隔为3,结果为 [2, 5, 8]
print(a[::]) # 步长参数不填默认为1,结果为 [0, 1, 2, 3, 4, 5, 6, 7, 8]
print(a[-3:0:-2]) # 倒数第三个索引到1号索引,间隔为2,结果为 [6, 4, 2]
print(a[::-1]) # 反向切片,步长不可省略,头尾可不填,则默认从尾到头,此处即把列表完整倒过来了,结果为 [8, 7, 6, 5, 4, 3, 2, 1, 0]
3、长度len:统计列表中元素个数。理同字符串。
print(len([1, 2, 3, 4, 5])) # 结果为 5
4、成员运算in和not in:检索某元素是否在列表中。
a = [1, 2, 3]
print(2 in a) # 结果为 True
print(4 not in a) # 结果为 True
5、追加值append:新加的值会加在列表最后。
a = [1, 2, 3]
a.append(4)
print(a) # 结果为 [1, 2, 3, 4]
6、插入值insert:先声明一个索引,新加的值会插在该索引前一个位置。
a = [1, 2, 3]
a.insert(1,'x')
print(a) # 结果为 [1, 'x', 2, 3]
7、在列表尾部添加多个元素extend:添加的对象必须为多个元素的类型,若为字典,则添加的是key。
a = [1, 2, 3]
a.extend([4, 5])
print(a) # 结果为 [1, 2, 3, 4, 5]
a.extend({'x': 66, 'y': 77})
print(a) # 结果为 [1, 2, 3, 4, 5, 'x', 'y']
8、删除相关操作:
①通用方式del:是系统功能,并非列表的内置功能,无法产生值,只有完成删除这个状态。
a = [1, 2, 3]
print(del a[0]) # 报错
②移出pop:将列表某元素按索引从列表中移出来,会返回该值。
a = [1, 2, 3, 4, 5]
print(a.pop()) # 不指定索引,默认为最后一位,结果为 5
print(a.pop(1)) # 移除1号索引值,结果为 2
print(a) # 原列表剩余元素,结果为 [1, 3, 4]
③移除remove:声明某一值,在列表中按顺序检索,移除第一个检索到的为该值的元素,没有返回值。
a = ['a','b','c','a']
a.remove('a')
print(a) # 结果为 ['b', 'c', 'a']
④全部清除clear:将列表中元素全部清除,操作后原列表为空列表,没有返回值。
a = [1, 2, 3]
a.clear()
print(a) # 结果为[]
9、计数count:声明某一值,统计出列表中为该值的元素的数量。
a = ['a', 'b', 'c', 'a', 'a']
print(a.count('a')) # 结果为 3
10、查找index:声明某一值,将检索到的第一个元素所在位置的索引号返回。
a = ['b','c','a', 'b', 'c', 'a', 'a']
print(a.index('a')) # 结果为 2
print(a.index('aa')) # 找不到会报错
11、倒置reverse:将列表倒过来。
a = [1, 2, 3]
a.reverse()
print(a) # 结果为 [3, 2, 1]
12、排序sort:元素为相同类型才可以排序,同为数字,同为字符串,同为列表等等。
①数字:升序或降序。
a = [2, 3, 1]
a.sort() # 不填参数则为升序排列
print(a) # 结果为 [1, 2, 3]
b = [2, 3, 1]
b.sort(reverse=True) # 使用参数reverse,实现降序排列
print(b) # 结果为[3, 2, 1]
②字符串:按照ASCII码表的先后顺序区分大小。以字母为例,拍的前面的字母ASCII码比排在后面的小。两个字符串比较是从左到右依次取单个字符比较,一旦有结果,不再关注后面字符。
print('azzzzzz'<'b') # 结果为True
③列表:理同字符串,但是互相比较的两元素类型必须相同,否则报错。
a = ['azzzzz', 'b', 'c']
b = ['d', 'b', 'c']
c = [1, 'b', 'c']
print(a < b) # 结果为 True
print(a < c) # 报错