切片:取一个 list 或 tuple 的部分元素是非常常见的操作
>>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
#笨办法:之所以是笨办法是因为扩展一下,取前 N 个元素就没辙了。
>>> [L[0], L[1], L[2]]
['Michael', 'Sarah', 'Tracy']
#取前 N 个元素,也就是索引为 0-(N-1)的元素,可以用循环:
>>> r = []
>>> n = 3
>>> for i in range(n):
... r.append(L[i])
...
>>> r
['Michael', 'Sarah', 'Tracy']
对任何范围[start:end],我们可以访问到包括 start 在内到 end(不包括 end)的所有字符,换句话说,假设 x 是[start:end]中的一个索引值,那么有: start<= x < end
>>> aString = 'abcd'
>>> len(aString)
4
正向索引:索引值开始于 0,结束于总长度减 1(因为我们是从 0 开始索引的).
final_index = len(aString) - 1
= 4 - 1
= 3
>>> aString[0]
'a'
>>> aString[1:3]
'bc'
>>> aString[2:4]
'cd'
>>> aString[4]
Traceback (innermost last): File "", line 1, in ?
IndexError: string index out of range
反向索引:在进行反向索引操作时,是从-1 开始,向字符串的开始方向计数,到字符串长度的负数为索引的结束,
final_index = -len(aString)
= -4
>>> aString[-1]
'd'
>>> aString[-3:-1]
'bc'
>>> aString[-4]
'a'
默认索引:如果开始索引或者结束索引没有被指定,则分别以字符串的第一个和最后一个索引值为默认值。
如果开始索引或者结束索引没有被指定,则分别以字符串的第一个和最后一个索引值为默认值。
>>> aString[2:]
'cd'
>>> aString[1:]
'bcd'
>>> aString[:-1]
'abc'
>>> aString[:]
'abcd'
#注意:起始/结束索引都没有指定的话会返回整个字符串.