切片slice操作可以让我们快速的提取子字符串,标准格式为:
[起始偏移量start:终止偏移量end:步长step]
典型操作:
操作和说明 | 示例 | 结果 |
---|---|---|
[:] 提取整个字符串 | ”abcdef“[:] | ”abcdef“ |
[start:]从start索引开始到结尾 | ”abcdef“[2:] | ”abcdef“ |
[:end]从头开始到end-1 | ”abcdef“[:2] | ”abcdef“ |
[start:end]从start索引开始到end-1 | ”abcdef“[2:4] | ”abcdef“ |
[start🔚step]从start索引开始到end-1,步长为step | ”abcdef“[1:5:2] | ”abcdef“ |
倒数第三个 | ”abcdef“[-3:] | ”abcdef“ |
倒数第二个到倒数第四个(包头不包尾) | ”abcdef“[-4:-2] | ”abcdef“ |
步长为负,从右往左反向提取 | ”abcdef“[::-1] | ”abcdef“ |
切片操作时,起始偏移量和终止偏移量不在[0,字符串长度-1]这个范围,也不会报错,起始偏移量小于0,则会当作0,终止偏移量大于”长度-1“会被当成-1,例如:
>>> a= "abcedfghijklmnopqrstuvwxyz"
>>> a[2:50]
'cedfghijklmnopqrstuvwxyz'
课后作业:
1.将"to be or not to be"字符串倒序输出
#将"to be or not to be"字符串倒序输出
a= "to be or not to be"
a=a[::-1]
print(a)
>>'eb ot ton ro eb ot'
2.将"sxtsxtsxtsxtsxt"字符串中所有的S输出
#将"sxtsxtsxtsxtsxt"字符串中所有的S输出
a= "sxtsxtsxtsxtsxt"
a=a[::3]
print(a)
>>'sssss'