字符串的子串可以通过切片标志来表示:两个由冒号隔开的索引。
>>> word 'HelpA' >>> word[4] 'A' >>> word[0:2] 'He' >>> word[2:4] 'lp' >>> word[:2] # The first two characters 'He' >>> word[2:] # All but the first two characters 'lpA' >>> word[:2] + word[2:] #切片操作有一个很有用的不变性: s[:i] + s[i:] 等于s。 'HelpA' >>> word[:3] + word[3:] 'HelpA' 索引可以是负数,计数从右边开始,例如: >>> word[-1] # The last character 'A' >>> word[-2] # The last-but-one character 'p' >>> word[-2:] # The last two characters 'pA' >>> word[:-2] # All but the last two characters 'Hel'
理解切片的最好方式是把索引视为两个字符之间的点,第一个字符的左边是0,字符串中第n个字符的右边是索引n,例如:
+---+---+---+---+---+
| H | e | l | p | A |
+---+---+---+---+---+
0 1 2 3 4 5
-5 -4 -3 -2 -1
第一行是字符串中给定的0到5各个索引的位置,第二行是对应的负索引。从i到j的切片由这两个标志之间的字符组成。
对于非负索引,切片长度就是两索引的差。例如,word[1:3]的长度是2。