Python列表基础教程

我们已经学习了数字和字符串这两种在程序中最常用的基本数据类型。但是,数字和字符串也有不太方便的时候,所以 Python 允许我们使用列表,以更为高效的方式来创建数据并把它们组合在一起。

例如,如果让你列出几位最好的朋友,你就可以依次用这些朋友的名字来创建一个列表:

>>> bestFriends=["Jerry","Mark","Justin","Jonny"]
>>> bestFriends
['Jerry', 'Mark', 'Justin', 'Jonny']

这样一来,你就可以使用一个单独的列表来表示所有这些朋友的名字,而不需要为此创建4个字符串。

认识 Python 列表

还是以列出朋友的名字为例。假设你想要使用一个程序来记录自己的好朋友,可以像下面这样为每位朋友创建一个变量:

>>> bestFriend1="Jerry"
>>> bestFriend2="Mark"
>>> bestFriend3="Justin"
>>> bestFriend4="Jonny"
>>> bestFriend5="Tom"
>>> bestFriend6="Marry"
>>> bestFriend7="Jenny"
>>> bestFriend8="Daniel"
>>> bestFriend9="Tony"

然而,这样书写很不方便,因为现在要记录所有朋友的名字,必须使用这 9 个不同的变量。想象一下,如果要记录 1000 种动物呢?你就需要创建 1000 个不同的变量,这几乎是不可能完成的工作。

如果能够把 9 位好朋友都放在一起,显然会更简单一些。我们可以通过列表来实现这一目标。

Python 创建列表

在 Python 中,用方括号[]来表示列表,并且用逗号来分隔列表中的元素。例如,可以创建一个名为 bestFriends 的列表,把好朋友的名字都保存在这个列表中。

>>> bestFriends=["Jerry","Mark","Justin","Jonny","Tom","Marry","Jenny","Daniel","Tony"]

提示:有时候,一些代码行太长了,无法在页面中放到一行之中,那么代码的文本会换到新的一行中。但是,在程序录入中,其实并没有换行,只是因为排版方式导致这样的情况出现。例如,在上面示例中,bestFriends 是紧跟随在 >>> 之后出现的,而不是分为两行。
如果让 Python 将列表打印出来,Python 将打印列表的完整信息,包括方括号,如下所示。

>>> print(bestFriends)
['Jerry', 'Mark', 'Justin', 'Jonny', 'Tom', 'Marry', 'Jenny', 'Daniel', 'Tony']

Python 访问列表元素

要访问列表中的元素,使用方括号加上想要的元素索引就可以了。还是以 bestFriends 列表为例,假设我们想要访问列表中的第 1 个元素、第 2 个元素和第 8 个元素,实现方法如下所示:

>>> bestFriends=["Jerry","Mark","Justin","Jonny","Tom","Marry","Jenny","Daniel","Tony"]
>>> print(bestFriends)
['Jerry', 'Mark', 'Justin', 'Jonny', 'Tom', 'Marry', 'Jenny', 'Daniel', 'Tony']
>>> bestFriends[0]
'Jerry'
>>> bestFriends[1]
'Mark'
>>> bestFriends[7]
'Daniel'


元素是保存在列表中的值,索引是和列表中元素的位置相对应的数字。

在 Python 中,索引是从 0 开始计数的。因此,第 1 个列表元素的索引是 0,而不是 1;列表中第 2 个元素的索引是 1,第 3 个元素的索引是 2,以此类推。要访问列表中的任何元素,可以将其位置减 1 作为索引。

这就是为什么我们向 bestFriends 列表请求索引 0 的元素会返回 “Jerry” (列表中的第1个元素),而请求索引1的元素会返回 “Mark” (列表中的第2个元素)。
提示:在大多数编程语言中,列表的索引都是从零开始计数的,这与列表操作的底层实现相关。
访问列表中单个的元素的功能非常有用。例如,如果想要向别人介绍你的某一位最好的朋友,并不需要把整个 bestFriends 列表都展现出来,而只需要展示第一个元素即可。

>>> bestFriends[0]
'Jerry'


Python 为访问最后一个列表元素提供了一种特殊方法——通过将索引指定为 -1,可以让 Python 返回最后一个列表元素。例如,bestFriends[-1] 就返回了最后一个元素 “Tony”。

>>> bestFriends[-1]
'Tony'

这种语法很有用,因为我们经常需要在不知道列表长度的情况下访问最后的元素。

这种表示方法也适用于其他的负数索引,例如,索引 -2 返回倒数第 2 个列表元素,索引 -3 返回倒数第 3 个列表元素,以此类推。

>>> bestFriends[-1]
'Tony'
>>> bestFriends[-2]
'Daniel'
>>> bestFriends[-3]
'Jenny'

Python 修改列表元素

我们可以使用方括号中的索引来修改列表中的元素。

修改列表元素的语法与访问列表元素的语法类似,要修改列表元素,可以指定列表名和所要修改的元素的索引,然后再指定该元素的新值。

还是以上节教程中的 bestFriends 列表为例,如果要用 "Christina" 替换 bestFriends 列表中的第一个元素 "Jerry",操作方式如下所示。

>>> bestFriends[0]="Christina"
>>> print(bestFriends)
['Christina', 'Mark', 'Justin', 'Jonny', 'Tom', 'Marry', 'Jenny', 'Daniel', 'Tony']

可以看到,列表中的第1个元素已经从 "Jerry" 变为 "Christina" 了。