11 个必须知道的 Python 列表方法

探索 Python 列表的奥秘:方法详解

本教程将引导你深入了解 Python 列表的操作,包括如何添加、修改以及删除列表中的元素。我们将学习各种实用的列表方法,助你更好地驾驭列表这一强大的数据结构。

列表是 Python 初学者最先接触到的内置数据结构之一。在接下来的内容中,我们不仅会回顾列表的基础知识,还会详细介绍处理列表时可用的多种便捷方法。准备好了吗?让我们开始吧!

Python 列表概览

在 Python 中,列表是一个有序的集合,可以容纳相同或不同数据类型的元素。你可以使用诸如 for 循环之类的迭代结构来访问列表中的每一个元素。

与所有 Python 可迭代对象类似,列表采用从零开始的索引方式,并支持切片操作。这意味着你可以通过索引来访问特定位置的元素,也可以通过切片来获取列表的子集。

列表是可变的集合,这意味着你可以直接修改它们。例如,你可以在列表中添加或删除元素,按照特定的顺序对元素进行排序,或者反转元素的顺序等等。Python 的内置列表方法为这些操作提供了强大的支持。

接下来,我们将深入研究一些常用的 Python 列表方法。

Python 中的内置列表方法

在这一部分,我们将学习一些非常实用的列表方法。我们将结合实例代码来演示这些方法的具体用法。

我们将使用一个名为 pgm_langs 的列表作为示例。这个列表包含了若干种流行编程语言的名称,这些名称以字符串的形式存储。

pgm_langs = ['Python','Go','Rust','JavaScript']

使用 insert() 插入列表项

有时,你需要在列表的特定位置插入一个新元素。这时,insert() 方法就派上用场了。 insert() 方法需要两个参数:

  • 要插入元素的索引位置。
  • 要插入的元素。

让我们使用 insert() 方法在索引 1 的位置插入字符串 ‘Scala’。

pgm_langs = ['Python','Go','Rust','JavaScript']
pgm_langs.insert(1,'Scala')
print(pgm_langs)
# 输出: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript']

使用 append() 在列表末尾添加项目

如果你需要在列表的末尾添加一个元素,可以使用 append() 方法。它会将指定的元素添加到列表的最后一个位置。

现在,我们使用 append() 方法在列表的末尾添加字符串 ‘Java’。

pgm_langs.append('Java')
print(pgm_langs)
# 输出: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript', 'Java']

使用 extend() 添加可迭代对象

你知道 append() 方法可以添加单个元素。但是,如果想将多个元素添加到现有列表呢?例如,你有一个包含多个元素的列表,你想把这些元素都加到另一个列表里。extend() 方法可以帮你轻松实现这个目的。

让我们使用 extend() 方法将 more_langs 列表中的所有元素添加到 pgm_langs 列表中。

more_langs = ['C++','C#','C']
pgm_langs.extend(more_langs)
print(pgm_langs)
# 输出: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript', 'Java', 'C++', 'C#', 'C']

当然,你可以使用循环遍历 more_langs 列表,然后逐个使用 append() 添加元素。但这比较繁琐,使用 extend() 方法更加简洁方便。

for lang in more_langs:
    pgm_langs.append(lang)

使用 reverse() 反转列表

如果想要反转列表中元素的顺序,可以使用 reverse() 方法。它会直接修改原始列表,将其中的元素顺序颠倒过来。

现在我们反转 pgm_langs 列表的元素顺序。

pgm_langs.reverse()
print(pgm_langs)
# 输出: ['C', 'C#', 'C++', 'Java', 'JavaScript', 'Rust', 'Go', 'Scala', 'Python']

使用 sort() 对列表进行排序

你可以使用 sort() 方法对 Python 列表进行原地排序。由于 pgm_langs 是一个字符串列表,排序会按照字母顺序进行。

pgm_langs.sort()
print(pgm_langs)
# 输出: ['C', 'C#', 'C++', 'Go', 'Java', 'JavaScript', 'Python', 'Rust', 'Scala']

如果需要按照反向字母顺序排序,你可以在 sort() 方法中将 reverse 参数设置为 True

pgm_langs.sort(reverse=True)
print(pgm_langs)
# 输出: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']

想了解更多关于排序 Python 列表的信息?请继续探索相关文档。

使用 copy() 进行浅拷贝

有时,你可能需要在不修改原始列表的情况下,对列表进行复制。copy() 方法会返回一个 Python 列表的浅拷贝。

现在,我们创建一个 pgm_langs 列表的浅拷贝,并将其命名为 pgm_langs_copy。然后我们将拷贝列表中的第一个元素设置为 ‘Haskell’,并打印输出。

pgm_langs_copy = pgm_langs.copy()
pgm_langs_copy[0]='Haskell'
print(pgm_langs_copy)
# 输出: ['Haskell', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']

我们看到原始的 pgm_langs 列表并没有被修改。因此,通过浅拷贝创建的副本的修改不会影响原始列表。

print(pgm_langs)
# 输出: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']

使用 count() 获取项目计数

有时,了解特定元素在列表中出现的次数很有用。 count() 方法会返回指定元素在列表中出现的次数。

pgm_langs 列表中,每个元素都只出现了一次。所以当我们查询 ‘Go’ 出现的次数时,结果是 1,这符合预期。

print(pgm_langs.count('Go'))
# 输出: 1

使用 count() 方法可以帮助我们从 Python 列表中删除重复项。

使用 index() 获取项目的索引

要在 Python 列表中查找某个项目的索引,可以使用 index() 方法。假设我们想在 pgm_langs 列表中找到 ‘C#’ 的索引,我们可以使用 assert 语句来验证索引 7 的元素是否为 ‘C#’。

print(pgm_langs.index('C#'))
# 输出: 7
assert pgm_langs[7] == 'C#'

使用 pop() 删除指定索引处的项目

现在,让我们看看从 Python 列表中删除元素的方法。pop() 方法用于删除并返回指定索引处的元素。我们从之前的例子知道,’C#’ 的索引是 7。

当我们在 pgm_langs 列表上调用 pop(7) 时,它会返回 ‘C#’,并将其从列表中移除。

print(pgm_langs.pop(7))
# 输出: 'C#'
print(pgm_langs)
# 输出: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C']

所以 pop() 方法会移除并返回指定索引处的元素。pop() 方法的索引参数是可选的。如果你不指定索引,pop() 方法会移除并返回 Python 列表中的最后一个元素,如下所示:

print(pgm_langs.pop())
# 输出: 'C'
print(pgm_langs)
# 输出: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++']

使用 remove() 删除指定项目

有时,你可能知道要删除哪个元素,但不知道它的索引。在这种情况下,可以使用 remove() 方法。它会接受一个要删除的元素,并在列表中将其删除。让我们使用 remove() 方法从 pgm_langs 列表中删除 ‘Java’。

pgm_langs.remove('Java')
print(pgm_langs)
# 输出: ['Scala', 'Rust', 'Python', 'JavaScript', 'Go', 'C++']

使用 clear() 删除所有项目

如果你想从 Python 列表中删除所有项目怎么办?当然你可以遍历列表,并使用 remove() 方法逐个删除,如下所示:

for lang in pgm_langs:
    pgm_langs.remove(lang)

但是,有没有更好的方法呢?答案是肯定的,你可以使用 clear() 方法。clear() 方法会删除列表中的所有元素,使其变成一个空列表。

pgm_langs.clear()
print(pgm_langs)
# 输出: []

Python 列表方法总结

让我们快速总结一下各种列表方法及其语法:

List 方法 语法 说明
insert() list1.insert(index, elt) list1 的指定 index 位置插入元素 elt
append() list1.append(elt) 将元素 elt 添加到 list1 的末尾
extend() list1.extend(list2) list2 中的所有元素添加到 list1 的末尾
sort() list1.sort() 原地对 list1 进行排序
reverse() list1.reverse() 原地反转 list1 中的元素
copy() list1.copy() 返回 list1 的一个浅拷贝
count() list1.count(elt) 返回元素 eltlist1 中出现的次数
index() list1.index(elt) 返回元素 eltlist1 中首次出现的索引
pop() list1.pop(index) 移除并返回 list1index 位置的元素。如果未指定 index,则移除并返回最后一个元素
remove() list1.remove(elt) list1 中删除第一个匹配元素 elt
clear() list1.clear() 删除 list1 中的所有元素

结论

希望本教程能够帮助你了解如何在 Python 中使用各种常用的列表方法。接下来,你可以进一步学习 Python 元组,以及 Python 中列表和元组之间的区别。

如果你正在学习 Python,可以参考这份为初学者准备的学习资源列表。