Python列表元素删除函数remove(),pop(),clear()及del关键字

remove()

remove具有移除、删除的意思,remove()函数的作用就是删除列表中的指定元素,参数为要删除的元素的值

list1 = [1, 2, 3, 3, 3, 6]
list1.remove(2)
print(list1)
# [1, 3, 3, 3, 6]

注意,remove()函数会删除第一个匹配到的索引位置的元素,不会删除所有匹配的元素

list1 = [1, 2, 3, 3, 3, 6]
list1.remove(3)
print(list1)
# [1, 2, 3, 3, 6]

由上面的代码可见,remove()函数只删除了列表中的第一个值为3的元素

如要使用remove()函数删除所有匹配的元素,这里给出两个个示范

list1 = [1, 2, 3, 3, 3, 6]
for i in range(list1.count(3)):
    list1.remove(3)
print(list1)
# [1, 2, 6]

上面的代码通过count()确定列表中值为3的元素的个数,从而使用for循环以指定次数删除值为3的元素

list1 = [1, 2, 3, 3, 3, 6]
for i in list1[:]:
    if i == 3:
        list1.remove(3)
print(list1)
# [1, 2, 6]

上面的代码是通过切片的方式生成一个与list1相同的列表进行遍历,每遍历到值为3的元素,便在原列表进行删除操作,这样也能确保删除次数的准确

pop()

pop人们较为熟悉的意思为“流行乐”,但实际上,pop还具有“突然出现”、“突然离去”的意思,pop()函数默认会删除列表的最后一个元素

list1 = [1, 2, 3, 3, 3, 6]
list1.pop()
print(list1)
# [1, 2, 3, 3, 3]

但pop()函数还可以删除指定下标的列表元素,只需设置pop()函数的参数为指定下标

list1 = [1, 2, 3, 3, 3, 6]
list1.pop(1)
print(list1)
# [1, 3, 3, 3, 6]

由上面的代码可以看出,pop()的参数为1,也就是删除列表的第2个元素,所以元素2被删除

pop()函数还具有一个特性,就是函数具有返回值,返回的是被删除的元素的值

list1 = [1, 2, 3, 3, 3, 6]
for i in range(len(list1)):
    print(list1.pop())
# 6
# 3
# 3
# 3
# 2
# 1
clear()

clear具有“清除”、“清洗”的意思,clear()函数在列表中的作用为清除列表中的所有元素

list1 = [1, 2, 3, 3, 3, 6]
list1.clear()
print(list1)
# []

这里可以看到在使用clear()函数后,列表变为了空列表,但这里需要注意,由于列表容器的引用特性,使用list1.clear()和list1 = []进行重新赋值的效果是不同的,以下进行演示

list1 = [1, 2, 3, 3, 3, 6]
list2 = list1
print(list1)
print(list2)
print("*" * 50)
list1.clear()
print(list1)
print(list2)
print("*" * 50)
# [1, 2, 3, 3, 3, 6]
# [1, 2, 3, 3, 3, 6]
# **************************************************
# []
# []
# **************************************************
list1 = [1, 2, 3, 3, 3, 6]
list2 = list1
print(list1)
print(list2)
print("*" * 50)
list1 = []
print(list1)
print(list2)
print("*" * 50)
# [1, 2, 3, 3, 3, 6]
# [1, 2, 3, 3, 3, 6]
# **************************************************
# []
# []
# **************************************************

由上面两段代码可以发现,list1在进行clear操作后,list2也变为了空列表,但是若是对list1进行空列表赋值,则list2不会改变,原因是由于列表的引用机制

list1和list2引用了同一块数据,为[1, 2, 3, 3, 3, 6],clear函数是将这一块数据变为空,但是若将空列表赋值给list1,则是将list1的引用改为了空,而list2的引用仍为[1, 2, 3, 3, 3, 6],所以list2不受影响,关于python中的引用机制后续会单独更新一章博客详细说明,请各位学习python的同学耐心等待哦

del关键字

python中的del关键字可以用于容器元素的删除,在列表中,与pop类似,在知道要删除元素的下标后,可以指定进行删除

list1 = [1, 2, 3, 3, 3, 6]
del list1[1]
print(list1)
# [1, 3, 3, 3, 6]

由上述代码可见,指定的下标为1所以删除了第二个元素2

del与pop()的区别主要为,(1)del为关键字,pop()为函数(2)del不会返回删除元素的值,但是pop()会返回

补充:del不仅可以删除元素,甚至可以删除容器

list1 = [1, 2, 3, 3, 3, 6]
del list1
print(list1)
# Traceback (most recent call last):
#   File "D:\Pythonproject\teach_day_01\demo01.py", line 3, in <module>
#     print(list1)
#           ^^^^^
# NameError: name 'list1' is not defined. Did you mean: 'list'?

可见list1被删除,其实这里的del也是取消list1的引用,后续可以继续关注博客的更新哈,引用机制是重点,各位同学需要好好学

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值