11个必知的Python列表方法 和及HTML标签

在本教程中,您将学习如何使用Python列表方法向Python列表中添加元素、修改元素和删除元素。

当您开始学习Python编程时,列表是您将了解的第一个内置数据结构之一。在接下来的几分钟内,我们将回顾Python列表的基础知识,然后介绍在使用列表时可以使用的几种有用的列表方法。

让我们开始吧!

Python列表概述

在Python中,列表是一个相同或不同数据类型的项目集合。您可以使用循环结构(如for loops)遍历集合以访问项目。

与所有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']

您可以遍历项目列表并使用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']

了解更多信息,请访问sorting Python lists

使用copy()创建浅拷贝

有时候,修改原始列表的副本而不是修改原始列表本身可能会有所帮助。列表方法copy()返回Python列表的副本pgm_langs_copy

让我们创建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列表中获取元素计数的方法之一remove duplicate items

使用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作为索引时,我们可以看到它返回索引为7的元素'C#',并且还将其从列表中删除。

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

因此,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()方法。我们可以看到调用pgm_langs列表的clear方法会删除所有元素,然后pgm_langs变为空列表。

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

Python列表方法总结

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

列表方法 语法 描述
insert() list1.insert(index, elt) list1index位置插入elt
append() list1.append(elt) elt添加到list1的末尾
extend() list1.extend(list2) list2的元素添加到list1的末尾
sort() list1.sort() 原地对列表进行排序
reverse() list1.reverse() 原地反转list1
copy() list1.copy() 返回list1的浅拷贝
count() list1.count(elt) 返回list1elt的出现次数
index() list1.index(elt) 返回list1elt的索引
pop() list1.pop(index) 删除index位置的elt并返回它
remove() list1.remove(elt) list1中删除elt
clear() list1.clear() list1中删除所有元素

结论

希望本教程能帮助你理解如何在Python中使用一些常见的列表方法。作为下一步,了解Python元组和在Python中的差异。

如果你正在学习Python,可以查看这个适合初学者的学习资源列表。

类似文章