虽然下标从 0 开始并向上增长,但也可以用负整数作为下标。整数值−1 指的是
列表中的最后一个下标,−2 指的是列表中倒数第二个下标,以此类推。在交互式环境中输入以下代码:
>>> 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[2]是一个列表和下标(一个整数)。
• spam[1:4]是一个列表和切片(两个整数)。
在一个切片中,第一个整数是切片开始处的下标。第二个整数是切片结束处的
下标。切片向上增长,直至第二个下标的值,但不包括它。切片求值为一个新的列表值。在交互式环境中输入以下代码:
>>> 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']