Python列表
1. 列表的基本操作索引操作
2. 列表的删除操作
通过索引删除
li=['a','b','c','d'] del li[1] # li =['a', 'c', 'd']
通过切片删除
li=['a','b','c','d'] del li[0:2] # li =[ 'c', 'd']
3. 列表的修改操作
4. 列表的拷贝操作
4.1 浅拷贝
a, 基本变量赋值改变现象
a=1 # id =140724292251904 b=a # id =140724292251904 b=2 # id =140724292251936 print(a) # 1 print(b) # 2 # 结论: a没有随着b的改变而改变是因为,b重新赋值后内存地址发生了改变,和a已经不一样了
b, 列表赋值改变现象
a=[1,2,3] # id =2376364675656 b=a # id =2376364675656 b[0]=0 # id =2376364675656 print(a) # [0, 2, 3] print(b) # [0, 2, 3] # 结论: a随着b的改变而改变,因为它们的内存地址始终都是一样没有发生改变,改变的只是列表里面的数据
c, 使用copy,但是列表里面的元素都是基本数据,里面没有包含子列表
a=[1,2,3] # id =2387467260488 b=a.copy() # id =2387467261000 b[0]=0 # id =2387467261000 print(a) # [1, 2, 3] print(b) # [0, 2, 3] # 结论: a没有随着b的改变而改变,因为使用copy函数,得到的新列表的内存地址已经发生了改变
d, 使用copy,但是列表里面的元素都是基本数据,里面包含子列表
a=[[0,1],2,3] # a[0] id=2263629451848 b=a.copy() # b[0] id=2263629451848 b[0][0]=23 print(a) # [[23, 1], 2, 3] print(b) # [[23, 1], 2, 3] # 结论: a随着b的改变而改变, 因为使用copy函数,但是copy得来的新列表里面的子列表和原有的子列表里面的id内存没有发生改变过
4.2 深拷贝
from copy import deepcopy a=[[0,1],2,3] # a[0] id=2262619870344 b=deepcopy(a) # b[0] id=2262620586696 b[0][0]=23 print(a) # [[0, 1], 2, 3] print(b) # [[23, 1], 2, 3] # 结论: 使用深拷贝后,得来的新列表里面的子列表和原有的列表里面的子列表的id内存已经发生了改变
count, clear, copy, append ,extend,index,remove,pop,reverse