列表是什么

列表是按特定顺序排列的项目集合。您可以制作一个列表,其中包括字母表中的字母、从 0 到 9 的数字,或者您家中所有人的名字。您可以将任何您想要的内容放入列表中,列表中的项目不必以任何特定方式相关。因为列表通常包含多个元素,所以将列表名称设为复数是个好主意,例如字母、数字或名称。

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

bicycles_0_first_version.py
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)

如果你要求 Python 打印一个列表,Python 会返回它对列表的表示,包括方括号:

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

因为这不是您希望用户看到的输出,所以让我们学习如何访问列表中的各个项目。

访问列表元素

列表是有序的集合,因此您可以通过告诉 Python 所需项目的位置或索引来访问列表中的任何元素。要访问列表中的元素,请写入列表名称,后跟方括号中的项目索引。

例如,让我们取出列表 bicycles 中的第一辆自行车:

bicycles_1_accessing_elements.py
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0])

当我们请求列表中的单个项目时,Python 只返回该元素而不带方括号:

trek

这是您希望用户看到的结果:干净、格式整齐的输出。

您还可以对该列表中的任何元素使用第 2 章中的字符串方法。例如,您可以使用 title() 方法将元素 'trek' 格式化为看起来更像样:

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

此示例产生与前面示例相同的输出,只是 'Trek' 大写。

索引从 0 而不是 1 开始

Python 认为列表中的第一项位于位置 0,而不是位置 1。大多数编程语言都是如此,原因与列表操作在较低级别的实现方式有关。如果您收到意想不到的结果,问问自己是否犯了一个简单但常见的差一错误。列表中的第二项的索引为 1。使用此计数系统,您可以通过从列表中的位置减去一个来从列表中获取所需的任何元素。例如,要访问列表中的第四项,您请求索引 3 处的项。以下请求索引 1 和索引 3 处的自行车:

bicycles_3_index_1_3.py
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[1])
print(bicycles[3])

此代码返回列表中的第二和第四辆自行车:

cannondale
specialized

Python 有一种特殊的语法来访问列表中的最后一个元素。如果您请求索引 -1 处的项目,Python 总是返回列表中的最后一项:

bicycles_4_last_item.py
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[-1])

此代码返回值 'specialized' 。这种语法非常有用,因为您经常想访问列表中的最后一项,但不知道列表的确切长度。此约定也扩展到其他负索引值。索引 -2 返回列表末尾的第二项,索引 -3 返回列表末尾的第三项,依此类推。

使用列表中的各个值

您可以像使用任何其他变量一样使用列表中的单个值。例如,您可以使用 f 格式根据列表中的值创建消息。让我们尝试从列表中拉出第一辆自行车并使用该值编写一条消息:

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

print(message)

我们使用 bicycles[0] 处的值构建一个句子,并将其分配给变量 message。输出是关于列表中第一辆自行车的简单句子:

My first bicycle was a Trek.
自己试试

试试这些简短的程序,以获得 Python 列表的一些第一手经验。 你可能想为每一章的练习创建一个新文件夹,以保持它们的组织性。

3-1.Names

将您几个朋友的姓名存储在名为姓名的列表中。 通过访问列表中的每个元素来打印每个人的姓名,一次一个。

3-2.Greetings

从你在练习 3-1 中使用的列表开始,但不是只打印每个人的名字,而是打印一条消息给他们。 每条消息的文本应该相同,但每条消息都应该用人名个性化。

3-3.Your Own List

想一想你最喜欢的交通方式,比如摩托车或汽车,并制作一个包含多个示例的清单。 使用您的列表打印出一系列关于这些项目的声明,例如“我想拥有一辆本田摩托车”。