python pop() ,如何在Python的列表或数组中移除元素

在本文中,你将学习如何使用Python内置的 pop() 方法,最后,你将知道如何使用 pop() 从 Python 中的列表中删除元素。

以下是我们将要讨论的内容:

  • Python列表概述
  • 如何使用 pop() 删除列表项
    • pop() 方法的语法
    • pop() 方法不带参数的用法
    • pop() 可选参数
    • 处理常见错误

什么是 Python 列表以及如何创建它

列表是 Python 中的内置数据类型,它充当容器,存储数据集合。使用方括号创建列表,如下所示:

# 空列表
my_list = []

print(my_list)
print(type(my_list))

# 输出

#[]
#<class 'list'>

你还可以使用 list() 构造函数创建列表:

# 空列表
my_list = list()

print(my_list)
print(type(my_list))

# 输出

#[]
#<class 'list'>

正如你在上面看到的,一个列表可以包含 0 个元素,在这种情况下,它被认为是一个空列表。

列表还可以包含普通元素或列表元素。列表元素包含在方括号内,每个项目之间用逗号 , 分隔。

列表项可以是同构的,即相同的类型。

例如,你可以有一个只有数字的列表,或者一个只有字符串的列表:

# a list of integers
my_numbers_list = [10,20,30,40,50]

# a list of strings
names = ["Josie", "Jordan","Joe"]

print(my_numbers_list)
print(names)

#output

#[10, 20, 30, 40, 50]
#['Josie', 'Jordan', 'Joe']

列表项也可以是异构的,即它们不同的数据类型。

这就是将列表与数组区分的原因。数组要求内部元素具有相同的数据类型,而列表则不需要。

# 列表包含字符串,整型,浮点型
my_information = ["John", "Doe", 34, "London", 1.76]

print(my_information)

#output

#['John', 'Doe', 34, 'London', 1.76]

列表是可变的,意味着它可被修改。可以更新列表项,可以删除列表项,还可以向列表添加新项。

使用 pop() 从列表中删除元素

在接下来的章节中,你将学习如何使用 pop() 方法从 Python 的列表中删除元素。

pop() 语法概述

pop() 方法的语法如下

list_name.pop(index)

让我们来分析一下:

  • list_name:列表变量名;
  • 内置的 pop() 方法仅需要一个可选参数;
  • 可选参数是要删除元素的索引

如何使用 pop() 无参数方法

默认情况下,如果没有指定索引, pop() 方法将删除列表中包含的最后一项。语法如下:

list_name.pop()

让我们来看一个例子:

# 声明一个列表
programming_languages = ["Python", "Java", "JavaScript"]

# 打印列表
print(programming_languages)

# 删除列表元素,即 "JavaScript"
programming_languages.pop()

# 打印列表
print(programming_languages)

#output

#['Python', 'Java', 'JavaScript']
#['Python', 'Java']

删除元素之后, pop() 还返回它。

可以将被删除的元素保存在一个变量中以供以后使用,这将非常有帮助。

#list of programming languages
programming_languages = ["Python", "Java", "JavaScript"]

#print initial list
print(programming_languages)

#remove last item, which is "JavaScript", and store it in a variable
front_end_language = programming_languages.pop()

#print list again
print(programming_languages)

#print the item that was removed
print(front_end_language)

#output

#['Python', 'Java', 'JavaScript']
#['Python', 'Java']
#JavaScript

pop() 可选参数

若要删除特定的列表元素,你需要指定该项的索引号。具体来说,将元素的索引作为参数传递给 pop() 方法。
Python 中的索引以及所有通用编程语言都是从 0 开始的,这意味着列表中的第一个元素的索引为0。第二个元素的索引为1,依此类推。
因此,要删除列表中的第一个元素,需要指定索引 0 作为 pop() 方法的参数。

pop() 返回被删除的元素。它能够存储在一个变量中,就上一节一样。

#list of programming languages
programming_languages = ["Python", "Java", "JavaScript"]

#remove first item and store in a variable
programming_language = programming_languages.pop(0)

#print updated list
print(programming_languages)

#print the value that was removed from original list
print(programming_language)

#output

#['Java', 'JavaScript']
#Python

让我们看看另一个例子:

#list of programming languages
programming_languages = ["Python", "Java", "JavaScript"]

#remove "Java" from the list
#Java is the second item in the list which means it has an index of 1

programming_languages.pop(1)

#print list 
print(programming_languages)

#output
#['Python', 'JavaScript']

在上面的示例中,列表中有一个特定的值需要删除。为了成功删除特定值,需要知道它的位置(索引)。

pop() 方法使用时常见错误

请记住,如果你尝试删除一个等于或大于列表长度位置的元素,将得到一个错误,即 IndexError
让我们看看下面这个例子,它展示了如何查找一个列表的长度:

#list of programming languages
programming_languages = ["Python", "Java", "JavaScript"]

#find the length of the list
print(len(programming_languages))

#output
#3

要查找列表的长度,可以使用 len() 函数,它返回列表中包含的项的总数。
如果我尝试删除位置3的一个元素,它等于列表的长度,会得到一个错误,说传递的索引超出了范围:

#list of programming languages
programming_languages = ["Python", "Java", "JavaScript"]

programming_languages.pop(3)

#output

# line 4, in <module>
#    programming_languages.pop(3)
#IndexError: pop index out of range

如果我试图删除位置4或更大位置索引的元素,同样的错误也会出现。
类似地,如果你在一个空列表上使用 pop() 方法,也会引发一个异常:

#empty list
programming_languages = []

#try to use pop() on empty list
programming_languages.pop()

#print updated list
print(programming_languages)

#output
#line 5, in <module>
#    programming_languages.pop()
#IndexError: pop from empty list

总结

现在你知道了如何使用 pop() 方法删除 Python 中的列表项,我希望你觉得这篇文章有用。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐