列表由一系列按特定顺序排列的元素组成。 你可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表; 也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。
在Python中,用方括号( []
)来表示列表,并用逗号来分隔其中的元素。
列表(List)是最基本的Python数据结构,是通过对数据元素进行编号将它们组织在一起的数据元素的集合。 列表可以进行的操作包括索引,切片,加,乘,检查成员。 此外,Python已经内置确定列表的长度以及确定最大和最小元素的方法。
鉴于列表通常包含多个元素, 给列表指定一个表示复数的名称(如letters 、digits 或names )是个不错的主意。
创建一个列表,只要把逗号分隔的不同数据项使用方括号括起来即可。如下所示:
list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
[1, 2, 3]
[1, 2, 3]
['cat', 'bat', 'rat', 'elephant']
['cat', 'bat', 'rat', 'elephant']
['hello', 3.1415, True, None, 42]
['hello', 3.1415, True, None, 42]
spam = ['cat', 'bat', 'rat', 'elephant']
spam
['cat', 'bat', 'rat', 'elephant']
spam
变量仍然只被赋予一个值:列表值。但列表值本身包含多个值。
[]
是一个空列表,不包含任何值,类似于空字符串。
用下标取得列表中的单个值
假定列表 [ 'cat' , 'bat', 'rat', 'elephant']
保存在名为
spam
的变量中。 Python 代码 spam[0]
将求值为 'cat'
,spam[l]
将求值为 'bat'
,
依此类推。列表后面方括号内的整数被称为“下标”。
列表中第一个值的下标是 0
,第二个值的下标是1,第三个值的下标是2,
依此类推。
在Python中,第一个列表元素的索引为0,而不是1。 在大多数编程语言中都是如此,这与列表操作的底层实现相关。 如果结果出乎意料,请看看你是否犯了简单的差一错误。
例如,在交互式环境中输入以下表达式。
开始将列表赋给变量 spam
。
spam = ['cat', 'bat', 'rat', 'elephant']
spam[0]
'cat'
spam[1]
'bat'
spam[2]
'rat'
spam[3]
'elephant'
['cat', 'bat', 'rat', 'elephant'][3]
'elephant'
'Hello '+ spam[0]
'Hello cat'
'The ' + spam[1] + ' ate the ' + spam[0] + '.'
'The bat ate the cat.'
# spam[10000] #此代码会报错
下标只能是整数,不能是浮点值。下面的例子将导致 TypeError
错误:
# spam[1.0] #此代码会报错
spam[int(1.0)]
'bat'
列表也可以包含其他列表值。这些列表的列表中的值,可以通过多重下标来访问,像这样:
spam = [['cat', 'bat'], [10, 20, 30, 40, 50]]
spam[0]
['cat', 'bat']
spam[0][1]
'bat'
spam[1][4]
50
spam = ['cat', 'bat', 'rat', 'elephant']
spam[-1]
'elephant'
spam[-3]
'bat'
'The ' + spam[-1] + ' is afraid of the ' + spam[-3] + '.'
'The elephant is afraid of the bat.'
spam = ['cat', 'bat', 'rat', 'elephant']
spam[0:4]
['cat', 'bat', 'rat', 'elephant']
spam[1:3]
['bat', 'rat']
spam[0:-1]
['cat', 'bat', 'rat']
作为快捷方法,可以省略切片中冒号两边的一个下标或两个下标。
省略第一个下标相当于使用 0
,或列表的开始。
省略第二个下标相当于使用列表的长度,
意味着分片直至列表的末尾。在交互式环境中输入以下代码:
spam = ['cat', 'bat', 'rat', 'elephant']
spam[:2]
['cat', 'bat']
spam[1:]
['bat', 'rat', 'elephant']
spam[:]
['cat', 'bat', 'rat', 'elephant']