第七节 字符串切片String Slicing
前言
我们有时候需要对一个字符串进行切片,取其一部分作为新的字符串进行处理。例如从姓名中分别提取姓和名,从网站域名中提取网站名称等等。
实践
首先我们定义一个变量,并将其赋值为Tom Efficion:
name = "Tom Efficion"
然后我们通过字符串切片的方式分别提取其姓和名:
first_name = name[:3]
last_name = name[4:]
print(first_name)
print(last_name)
>>> Tom
>>> Efficion
我们先来分析第一个表达式name[:3]
。字符串切片表达式一般表示为[start:stop:step]
,也即起始位置,结束位置,步长,默认情况下start=0,stop=-1,step=1
,需要注意的是这里的三个参数均可省略,若不指定该参数,Python就会使用默认值,故而name[:3]=name[0:3:1]
,也即获取name字符串从0位置到3位置,步长为1的所有内容作为新的字符串赋值给first_name。在字符串切片过程中,新的字符串包含start位置但是不包含stop位置,也即数学里的半闭区间(左闭右开)。
那么,我如果想获取偶数位置的字母组成新的字符串该怎么办呢?我们指定步长为2即可:
funky_name = name[::2]
print(funky_name)
>>> TmEfco
有时候我们需要颠倒字符串中每个字母的位置,此时需要指定步长为-1:
reversed_name = name[::-1]
print(reversed_name)
>>> noiciffE moT
可能初学者不理解这里-1的意思,其实Python给每个字符串中每个元素是有两个位置编号的,一个是从左到右的0,1,2,…,一个是从右到左的-1,-2,-3,…那么若步长为-1,Python就会从右到左依次取每一个元素作为新的字符串中的元素,也就实现了逆序。
除此之外,我们还可以使用函数slice()
实现字符串切片,例如我们有两个域名,需要获取其网站名称:
website1 = "http://google.com"
website2 = "http://wikipedia.com"
slice = slice(7,-4)
print(website1[slice])
print(website2[slice])
>>> google
>>> wikipedia
可见slice()
函数与直接对字符串切片运算不同的是,其三部分不是用:
隔开,而是用,
隔开,除此之外,slice()
函数需要先实例化切片方式再加以使用,我们在实际编程过程中更推荐使用[start:stop:step]
这种字符串切片方式。
以上便是字符串切片的全部内容,感谢大家的收藏、点赞、评论。我们下一节将介绍判断语句(If Statements),敬请期待~