在本文中,我们将介绍在 Python 中从列表中删除元素的所有方法。
Python 列表是日常编程中使用的最基本的数据结构。我们遇到过需要从列表中删除元素的情况,在本文中,我们将具体讨论这一点。
1. 根据值从列表中删除元素
Python 成为著名编程语言的原因之一是其存在大量内置函数。这些内置函数非常方便,从而使 Python 编写起来非常方便。
删除()函数
Python 有一个内置函数,remove()
可以帮助我们根据值删除元素。
# List of integers lis = [ 3 , 1 , 4 , 1 , 5 , 9 , 2 , 6 , 5 ] # Remove element with value = 1 lis.remove( 1 ) # Printing the list print (lis) # Remove element with value = 9 lis.remove( 9 ) # Printing the list print (lis) |
输出:
[3, 4, 1, 5, 9, 2, 6, 5] [3, 4, 1, 5, 2, 6, 5] |
这里需要注意的关键事项是:
- 该
remove()
函数接受一个参数——要删除的值。 - 如果给定值多次出现,则删除第一个。
- 删除元素不会在该位置留下空格,它只是将后面的元素向左移动。
- 如果列表中没有这样的元素,则脚本会引发错误。
正确使用remove()函数
有一种简单的方法可以在删除元素时绕过错误,以防程序员不知道该元素出现在列表中。我们将使用if 条件来完成此操作。
# List of integers lis = [ 1 , 4 , 2 , 6 , 1 , 9 , 10 ] # Value to be removed val = 6 # Check if the list contains the value if val in lis: # Remove the value from the list lis.remove(val) # Printing the list print (lis) |
输出:
[3, 1, 4, 1, 5, 9, 2, 5] |
在上面的代码片段中,我们在删除之前首先检查列表中是否存在该值。
删除列表中所有出现的值
正如我们之前提到的,remove() 函数仅删除第一次出现的值。为了取出该值的所有实例,我们将使用while 循环。
# List of integers lis = [ 1 , 4 , 2 , 6 , 1 , 9 , 10 ] # Value to be removed val = 1 # Run until the list containes the value while val in lis: # Remove the value from the list lis.remove(val) # Printing the list print (lis) |
输出:
[3, 4, 5, 9, 2, 6, 5] |
这总结了函数的用法remove()
。
2. 根据索引删除元素
有几种方法可以根据索引删除元素。让我们快速浏览一下它们中的每一个。
删除关键字
del
是Python中的一个强大工具,用于删除整个对象。它还可用于从给定列表中删除元素。
# List of integers lis = [ 3 , 1 , 4 , 1 , 5 , 9 , 2 , 6 , 5 ] # Removing element from the start (index = 0) del lis[ 0 ] # Printing the list print (lis) # Removing element from the last (index = -1) del lis[ - 1 ] # Printing the list print (lis) |
输出:
[1, 4, 1, 5, 9, 2, 6, 5] [1, 4, 1, 5, 9, 2, 6] |
从上述脚本得出的一些观察结果是:
del
不是一种方法。这是一条删除其后的项目的语句。- 从特定索引中删除元素会将下一个值移动到该特定索引(如果它不是最后一个索引)。
- 提供大于(或等于)列表长度的索引将引发“超出范围”错误。
弹出()函数
顾名思义,pop()
函数从指定索引中弹出一个元素。
# List of integers lis = [ 3 , 1 , 4 , 1 , 5 , 9 , 2 , 6 , 5 ] # Removing the fourth element (index = 3) lis.pop( 3 ) # Printing the list print (lis) # Removing the second last element (index = -2) lis.pop( - 2 ) # Printing the list print (lis) |
输出:
[3, 1, 4, 5, 9, 2, 6, 5] [3, 1, 4, 5, 9, 2, 5] |
我们在这里了解到的pop()
方法是:
- 它需要一个参数——列表的索引
- 它根据给定的索引从列表中删除元素。以下元素向左移动。
- 它支持向后索引。
- 如果列表中不存在索引,则会引发“超出范围”错误。
我们有一篇完整的文章介绍pop() 方法的使用。
3. 从列表中删除一系列元素
Python 提供了从列表中删除一系列元素的功能。这可以通过语句来完成del
。
# List of integers lis = [ 3 , 1 , 4 , 1 , 5 , 9 , 2 , 6 , 5 ] # Removing first and second element del lis[ 0 : 2 ] # Printing the list print (lis) # Removing last two elements del lis[ - 2 :] # Printing the list print (lis) |
输出:
[4, 1, 5, 9, 2, 6, 5] [4, 1, 5, 9, 2] |
让我们尝试理解这个过程:
- 要从序列中的列表中删除多个元素,我们需要为语句提供一系列元素
del
。 - 一系列元素采用起始索引和/或结束索引,并用冒号分隔
':'
。 - 要删除的值包括起始索引,但不包括结束索引处的值。
- 如果缺少结束索引,则范围包括直到列表末尾的所有元素。
4. 删除列表中的所有元素
Python 提供了一种在一行中清空整个列表的方法。
# List of integers lis = [ 3 , 1 , 4 , 1 , 5 , 9 , 2 , 6 , 5 ] # Removing all elements lis.clear() # Printing the list print (lis) |
输出:
[ ] |
如果该函数应用于空列表,则不会引发任何错误。
结论
使用从列表中删除元素的方式(按值或索引)由您自行决定。不同的情况需要不同的方法,因此Python提供了多种从Python列表中删除元素的方法。
我们希望读者能够顺利理解本文。对于与该主题相关的任何疑问,请随时在下面发表评论。