Python 列表
List是python中基础的顺序数据结构
本文内容: python列表 | 深浅拷贝
以下为python3代码
创建:
1 li = [1, 2, 3, 4, 5]
增加
1 # 在列表尾部加入 2 append(object) 3 li.append(7) 4 print(li) 5 # [1, 2, 3, 4, 5, 7] 6 7 # 指定位置插入数据 8 insert(index, object) 9 li.insert(5, 6) 10 # [1, 2, 3, 4, 5, 6, 7] 11 12 # 加入新的列表 13 extend(object) 14 li2 = ["hi dude!"] 15 li.append(li2) 16 print(li) 17 # [1, 2, 3, 4, 5, 6, 7, "hi dude!"] 18 # python列表为引用型数据
删除
1 li = [1, 2, 3, 4, 3, 5] 2 # remove() 移除某一项, 无返回值 3 li.remove(3) 4 print(li) 5 li = [1, 2, 4, 3, 5] 6 7 # pop(index) 默认删除最后一个数据并返回其值 8 ret = li.pop() 9 print(ret) 10 # 5
修改数据
1 li = [1, 2, 3, 4, 5] 2 li[1] = "new data" 3 print(li) 4 # [1, "new data", 3, 4, 5]
查询操作
列表是顺序的连续存储的数据,可通过index访问,也可进行切片操作
通过索引取值
1 li = [1, 2, 3, 4, 5] 2 print(li[0]) 3 # 1 4 print(li[-1]) 5 # 5
切片
1 li[start:end:step] 2 print(li[1: 3]) 3 # [2, 3] 4 print(li[3:]) 5 # [4, 5] 6 print(li[:-2]) 7 # [1, 2, 3]
取索引
1 li = [1, 2, 3, 4, 3, 5] 2 print(li.index(3)) 3 # 2
排序操作
排序
1 # sort() 列表中要同类型数据 2 li = [1, 2, 3, 4, 3, 5] 3 li.sort() 4 print(li) 5 # [1, 2, 3, 3, 4, 5]
逆序
1 # reverse() 无返回值,逆序 2 li = [1, 2, 3, 4] 3 li.reverse() 4 print(li) 5 # [4, 3, 2, 1]
有关深浅拷贝
浅拷贝
1 li = [1, 2, 3, 4, 5, [0, 10]] 2 li2 = li.copy() 3 li2[0] = 100 4 li2[5][0] = 10 5 print(li) 6 print(li2) 7 # [1, 2, 3, 4, 5, [10, 10]] 8 # [100, 2, 3, 4, 5, [10, 10]] 9 # 浅拷贝只复制第一层, 深层的依旧是共同地址指向的数据。
深拷贝
1 # 导入copy模块 2 import copy 3 li = [1, 2, 3, 4, 5, [0, 10]] 4 li2 = copy.deepcopy(li) 5 li2[0] = 100 6 li2[5][0] = 10 7 print(li) 8 print(li2) 9 # [1, 2, 3, 4, 5, [0, 10]] 10 # [100, 2, 3, 4, 5, [10, 10]] 11 # 深拷贝完全开辟出新的空间, 内容全部复制出来, 修改内容不影响复制引用变量内容。