1.list 列表
基本操作:求长度len;遍历每一个元素for in
深拷贝与浅拷贝:
浅拷贝:
a = [1,2,[3,4,5]]
ac = a.copy()
ac[0] = 10
ac[2][1] = 40
浅拷贝原理图:copy 只完成了一层 copy,即 [1,2, id([3,4,5])] 复制一份,对于第二层复制后,仍然指向 [3,4,5] 所在的内存空间
深度拷贝:
from copy import deepcopy
a = [1,2,[3,4,5]]
ac = deepcopy(a)
ac[0] = 10
ac[2][1] = 40
print(a[0] == ac[0])
print(a[2][1] == ac[2][1])
深拷贝的意思就是:list内嵌的列表都被重新分配内存拷贝了
切片功能
为访问列表带来极大便利。利用内置函数 range(start,stop,step) 生成序列数据,并转为 list 类型:
使用 a[-1] 获取 a 的最后一个元素,返回 int 型,值为 19;
使用a[:3]获取列表a的前三个元素;
使用 a[:-1] 获取除最后一个元素的切片 [1, 4, 7, 10, 13, 16];
使用 a[1:5] 生成索引为 [1,5)(不包括索引 5)的切片 [4, 7, 10, 13];
使用 a[1:5:2] 生成索引 [1,5) 但步长为 2 的切片 [4,10];
使用 a[::3] 生成索引 [0,len(a)) 步长为 3 的切片 [1,10,19];
使用 a[::-3] 生成逆向索引 [len(a),0) 步长为 3 的切片 [19,10,1]
2.元组
元组既然是不可变(immutable)对象,自然也就没有增加、删除元素的方法。其他的操作与列表类似