原文:Python .pop() – How to Pop from a List or an Array in Python,作者:Dionysia Lemonaki

在这篇文章中,你将学习如何使用 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 个项目,在这种情况下它被认为是一个空列表。

列表也可以包含项目,或者说列表项。列表项被围在方括号内,每个项之间用逗号 , 隔开。

列表项可以是同质的,也就是说它们的类型是相同的。

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

#整数列表
my_numbers_list = [10,20,30,40,50]

#字符串列表
names = ["Josie", "Jordan","Joe"]

print(my_numbers_list)
print(names)

#输出

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

列表项也可以是异质的,这意味着它们都可以是不同的数据类型。

这就是列表与数组的不同之处。数组要求项目只具有相同的数据类型,而列表则不然。

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

print(my_information)

#输出

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

列表是可变的,意思是列表项可以被更新或者被删除,新的项目可以被添加到列表中。

如何使用 Python 中的 pop() 方法从一个列表中删除元素

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

pop() 方法 - 语法概述

pop() 方法的一般语法是这样的:

list_name.pop(index)

让我们分解一下:

  • list_name 是你正在使用的列表的名称
  • 内置的 pop() Python 方法只接受一个可选参数
  • 可选参数是要删除的项目的索引

如何使用没有参数的 pop() 方法

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

这意味着当 pop() 方法没有任何参数时,它将删除最后一个列表项。

它的语法是这样:

list_name.pop()

让我们看一个例子:

#编程语言列表
programming_languages = ["Python", "Java", "JavaScript"]

#打印初始列表
print(programming_languages)

#移除最后一个列表项 “JavaScript”
programming_languages.pop()

#再次打印列表
print(programming_languages)

#输出

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

除了删除项之外,pop() 还返回它。

如果你想将该列表项保存并存储在变量中以供以后使用,这将很有帮助。

#编程语言列表
programming_languages = ["Python", "Java", "JavaScript"]

#打印初始列表
print(programming_languages)


#移除最后一个列表项 “JavaScript”,并把它存储在变量中
front_end_language = programming_languages.pop()

#再次打印列表
print(programming_languages)

#print the item that was removed
print(front_end_language)

#输出

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

如何使用带有可选参数的 pop() 方法

要删除特定列表项,你需要指定该项目的索引号。具体来说,你将该表示项目位置的索引作为参数传递给 pop() 方法。

Python 和很多编程语言中的索引都是从零开始的。计数从 0 开始,而不是 1

这意味着列表中的第一项的索引为 0,第二项的索引为 1,依此类推。

因此,要删除列表中的第一项,你将索引 0 指定为 pop() 方法的参数。

请记住,pop() 返回已删除的项目。这使你可以将其存储在变量中,就像你在上一节中看到的那样。

#编程语言列表
programming_languages = ["Python", "Java", "JavaScript"]

#删除第一项并将它存储在变量中
programming_language = programming_languages.pop(0)

#打印更新后的列表
print(programming_languages)

#打印从原始列表中删除的值
print(programming_language)

#输出

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

让我们看另一个例子:

#编程语言列表
programming_languages = ["Python", "Java", "JavaScript"]

#从列表中移除 “Java”
#Java is the second item in the list which means it has an index of 1

programming_languages.pop(1)

#打印列表 
print(programming_languages)

#输出
#['Python', 'JavaScript']

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

使用 pop() 方法时发生的常见错误概述

请记住,如果你尝试删除等于或大于列表长度的项目,则会收到错误——IndexError

让我们看看下面的例子,它展示了如何找到一个列表的长度:

#编程语言列表
programming_languages = ["Python", "Java", "JavaScript"]

#找到列表的长度
print(len(programming_languages))

#输出
#3

要查找列表的长度,请使用 len() 函数,该函数返回列表中包含的项目总数。

如果我尝试删除位置 3 处的项目,该位置等于列表的长度,我会收到一条错误消息,指出传递的索引超出范围:

#编程语言列表
programming_languages = ["Python", "Java", "JavaScript"]

programming_languages.pop(3)

#输出

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

如果我试图删除位置 4(甚至更高)的项目,也会引发同样的异常。

同样,如果你在空列表上使用 pop() 方法,也会引发异常:

#空列表
programming_languages = []

#尝试在空列表上使用 pop()
programming_languages.pop()

#打印更新的列表
print(programming_languages)

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

总结

就是这些内容啦!你现在知道了如何在 Python 中使用 pop() 方法删除列表项。

我希望你觉得这篇文章有用。

要了解有关 Python 编程语言的更多信息,请查看 freeCodeCamp 的 Python 和科学计算认证

你将从基础开始,学习对初学者友好的交互式方式课程。最后,你将构建五个项目以巩固你所学的知识。

感谢你阅读本文。祝你编程愉快!