小白编程
亮色模式 暗色模式 跟随系统
首页 Python

如何在 Python 中使用列表:列表基础

发布日期:

列表(list)是一种数据结构,它按照一定的顺序存储一系列的元素。你可以创建包含字母、数字或任何其他元素的列表,这些元素之间可以是完全无关的。由于列表通常包含多个元素,因此给它们起一个复数形式的名称(如 lettersdigitsnames)是一个好习惯。

在 Python 中,列表用方括号([])表示,其中的元素用逗号分隔。以下是一个包含几种自行车品牌的简单示例:

1
2
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)

当你让 Python 打印列表时,它会显示列表的内部表示形式,包括方括号:

1
['trek', 'cannondale', 'redline', 'specialized']

这不是我们希望用户看到的输出。接下来,我们将学习如何访问列表中的元素。

访问列表元素

由于列表是有序的,你可以通过元素的位置(索引)来访问它们。要访问列表中的元素,只需指定列表的名称和元素的索引,并将索引放在方括号内。

例如,以下代码从 bicycles 列表中提取第一个元素:

1
2
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0])

当你获取列表元素时,Python 只返回该元素,不包括方括号:

1
trek

这是我们希望用户看到的整洁、清晰的输出。

你也可以对列表中的任何元素使用如何在 Python 中对字符串进行操作这篇文章介绍的字符串方法。例如,使用 title() 方法可以让元素“trek”的首字母大写:

1
2
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0].title())

这个示例的输出与前一个示例相同,只是“T”变成了大写。

索引从 0 开始

在 Python 中,列表的第一个元素的索引是 0,而不是 1。这是大多数编程语言的通用规则,与列表操作的底层实现有关。如果你发现结果出乎意料,检查一下自己是否犯了“差一错误”。

第二个元素的索引是 1。按照这种简单的计数方式,要访问列表中的任何元素,只需将其位置减 1 作为索引。例如,要访问第四个元素,可以使用索引 3。

以下代码访问索引 1 和索引 3 处的自行车:

1
2
3
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[1])
print(bicycles[3])

这些代码返回列表中的第二个和第四个元素:

1
2
cannondale
specialized

Python 还提供了一种特殊语法来访问列表的最后一个元素。通过将索引指定为 -1,Python 会返回列表的最后一个元素:

1
2
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[-1])

这些代码返回 “specialized”。这种语法非常有用,因为你可能经常需要在不知道列表长度的情况下访问最后一个元素。这种约定也适用于其他负数索引,例如,索引 -2 返回倒数第二个元素,索引 -3 返回倒数第三个元素,以此类推。

使用列表中的值

你可以像使用其他变量一样使用列表中的值。例如,可以使用 f 字符串根据列表中的值创建消息。

以下示例从列表中提取第一个元素,并使用这个值创建一条消息:

1
2
3
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
message = f"My first bicycle was a {bicycles[0].title()}."
print(message)

这里使用 bicycles[0] 的值生成了一个句子,并将其赋给变量 message。输出是一个简单的句子,其中包含列表中的第一个自行车品牌:

1
My first bicycle was a Trek.

使用列表时避免索引错误

在刚开始使用列表时,初学者常会犯一个常见的错误:尝试访问不存在的元素。例如,如果你有一个包含三个元素的列表,却尝试访问第四个元素:

1
2
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles[3])

这将引发一个索引错误:

1
2
3
4
5
Traceback (most recent call last):
  File "motorcycles.py", line 2, in <module>
    print(motorcycles[3])
          ~~~~~~~~~~~^^^
IndexError: list index out of range

Python 试图访问索引为 3 的元素,但在列表 motorcycles 中找不到该索引处的元素。由于列表索引从 0 开始,这种错误经常发生。有些人习惯从 1 开始计数,错误地认为第三个元素的索引是 3,但在 Python 中,第三个元素的索引实际上是 2。

索引错误表明 Python 在指定索引处找不到元素。遇到这种情况时,尝试将索引减 1 并重新运行程序,检查结果是否正确。

请记住,访问列表的最后一个元素时,可以使用索引 -1,这是一个通用的做法,即使在访问后列表的长度发生变化:

1
2
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles[-1])

索引 -1 总是返回列表的最后一个元素,在这个例子中是 ‘suzuki’:

1
suzuki

但是,如果列表为空,尝试访问最后一个元素将导致错误:

1
2
motorcycles = []
print(motorcycles[-1])

列表 motorcycles 为空,因此 Python 返回索引错误:

1
2
3
4
5
Traceback (most recent call last):
  File "motorcycles.py", line 2, in <module>
    print(motorcycles[-1])
          ~~~~~~~~~~~^^^^
IndexError: list index out of range

当遇到索引错误且难以解决时,尝试打印列表及其长度。列表的实际内容可能与你预期的不同,尤其是在程序对其进行了动态处理之后。查看列表及其元素数量可以帮助你诊断这种逻辑错误。

相关文章