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]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跑跑跑啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值