改元素与数组类似,直接改就可以。
当有多个元素需要替换时,可通过切片来实现
其实际是先通过删除需要改的元素,之后插入改变后的元素来实现的
如:
>>> s=[1,2,3,4,5] >>> s[0]="改" >>> s ['改', 2, 3, 4, 5] >>> s[3:]=[6,7] >>> s ['改', 2, 3, 6, 7]
当一个列表中的元素全是数字是我们可以通过sort()函数对列表进行从小到大排序
reverse函数可将列表反序
>>> a=[4,8,12,46,8,9] >>> a.sort() >>> a [4, 8, 8, 9, 12, 46] >>> a.reverse() >>> a [46, 12, 9, 8, 8, 4]
count函数查找该列表中某个元素的个数
index函数则返回列表中某个元素的索引值,当有多个一样的元素时,返回下标最小的元素
index(x,s,e)其中s与e表示查找的范围
>>> a [46, 12, 9, 8, 8, 4] >>> a.count(8) 2 >>> a.index(8) 3 >>> a[a.index(12)]=21#不知道元素索引值时更改元素 >>> a [46, 21, 9, 8, 8, 4] >>> a.index(8,4,5) 4
若直接将列表赋值给一个变量,实际只有一个列表,但用copy之后赋值则是创建了一个新的列表
拷贝还可通过切片实现
无论是通过copy还是切片实现的拷贝都只是浅拷贝
关于浅拷贝与深拷贝的简单理解:如果列表中的元素是地址,那拷贝时会有两个列表中的某一个元素指向同一个地址,这属于浅拷贝,但如果拷贝时并非是简单的赋值,而是对是地址的那个元素新申请一段同种类型的空间,然后地址赋值给地址元素,然后原地址空间中的值赋值给新地址空间,那就实现了深拷贝
示例:
>>> a [46, 21, 9, 8, 8, 4] >>> b=a >>> a[0]=1#a变b也变 >>> b [1, 21, 9, 8, 8, 4] >>> c=a.copy() >>> c[1]=0#c变a不变 >>> c [1, 0, 9, 8, 8, 4] >>> a [1, 21, 9, 8, 8, 4] >>> a [1, 21, 9, 8, 8, 4] >>> d=a[:] >>> d[0]=0 >>> d [0, 21, 9, 8, 8, 4] >>> a [1, 21, 9, 8, 8, 4]