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) |
在list1 的index 位置插入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) |
返回list1 中elt 的出现次数 |
index() | list1.index(elt) |
返回list1 中elt 的索引 |
pop() | list1.pop(index) |
删除index 位置的elt 并返回它 |
remove() | list1.remove(elt) |
从list1 中删除elt |
clear() | list1.clear() |
从list1 中删除所有元素 |
结论
希望本教程能帮助你理解如何在Python中使用一些常见的列表方法。作为下一步,了解Python元组和在Python中的差异。
如果你正在学习Python,可以查看这个适合初学者的学习资源列表。