切片:取一个 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 "<stdin>", 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' #注意:起始/结束索引都没有指定的话会返回整个字符串.