对列表的删除操作del和pop的区别和应用
有很多小伙伴在学习python的列表的删除对del、pop()和remove()不知道在什么场景用哪个,接下来这篇文章就简单介绍一下。
1.del的使用
使用del可以删除任意位置的列表元素,条件是知道其索引,并且使用del删除后就无法再访问被删除元素。
s = ['a', 'b', 'c', 'd']
print(s)
del s[1]
print(s)
# 输出结果为:
['a', 'b', 'c', 'd']
['a', 'c', 'd']
2.pop()的使用
相信有不少小伙伴都学过数据结构,其中栈相信大家还有印象,一种先进后出的数据结构,其中pop()表示出栈,即把栈顶元素“弹出来”。看输出结果,在我不给pop()指定任何参数的时候,它默认是把最后一个元素弹出来,并赋值给一个新列表s1
s = ['a', 'b', 'c', 'd']
print(s)
s1 = s.pop()
print(s)
# 输出结果:
['a', 'b', 'c', 'd']
['a', 'b', 'c']
实际上使用pop()可以删除任意位置的列表元素,只需要在pop后面的圆括号中输入要删除元素的索引。
s = ['a', 'b', 'c', 'd']
print(s)
s1 = s.pop(0) # 删除第一个列表元素
print(s)
# 输出结果:
['a', 'b', 'c', 'd']
['b', 'c', 'd']
3.remove()的使用
有时候不知道从列表中要删除的值所在的位置,如果只知道要删除元素的值,我们可以使用remove()。
s = ['a', 'b', 'c', 'd']
print(s)
s.remove('c') # 输出列表中值为‘c’的元素
print(s)
# 输出结果:
['a', 'b', 'c', 'd']
['a', 'b', 'd']
如果想要和pop()一样删除后使用该元素的值,那么我们在删除之前先用一个元素去保存它。
s = ['a', 'b', 'c', 'd']
print(s)
s1 = 'c' # 将要删除元素的值赋给新变量
s.remove(s1)
print(s)
print(s1)
# 输出结果:
['a', 'b', 'c', 'd']
['a', 'b', 'd']
c
另外需要注意的是,remove()只会删除第一个指定的值,如果列表中有多个元素的值相同,那么只会删除第一个,想要都删除,需要配合循环来使用。
s = ['a', 'b', 'c', 'd', 'c']
print(s)
s.remove('c')
print(s)
# 输出结果:
['a', 'b', 'c', 'd', 'c']
['a', 'b', 'd', 'c']
总结一下:
我们到底什么时候使用del,什么时候使用pop()或remove()呢?
如果在我们知道要删除元素的索引的情况下,从列表中删除一个元素,并且以后不再使用它,就使用del语句,如果你想要在删除某个元素后,继续使用它,那么就使用pop(),如果我们不知道元素地索引,只知道我们要删除的元素的值,那么我们使用remove()。