Python教程

python列表相关操作(3)

本文主要是介绍python列表相关操作(3),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.改

改元素与数组类似,直接改就可以。
当有多个元素需要替换时,可通过切片来实现
其实际是先通过删除需要改的元素,之后插入改变后的元素来实现的
如:

>>> s=[1,2,3,4,5]
>>> s[0]="改"
>>> s
['改', 2, 3, 4, 5]
>>> s[3:]=[6,7]
>>> s
['改', 2, 3, 6, 7]

2.对数字列表的排序

当一个列表中的元素全是数字是我们可以通过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]

3.查

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

4.copy,列表的拷贝

若直接将列表赋值给一个变量,实际只有一个列表,但用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]
这篇关于python列表相关操作(3)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!