Python中字符串切片详解

在python中,我们定义好一个字符串,如下所示。

s = 'abcdefghijklmnop'

在python中定义个字符串然后把它赋值给一个变量。我们可以通过下标访问单个的字符,跟所有的语言一样,下标从0开始。这个时候呢,我们可以通过切片的方式来截取出我们定义的字符串的一部分。使用切片的时候我们有两种方式:

1.没有步长的简单切片

语法格式是这样的:

1.首先定义一格字符串,比如叫s,然后给它赋值

2. 截取字符串中的一部分,我们用的语法是 s[ start : stop ] 

注意一下: 在这里呢,start表示的是字符串要截取的开始下标,stop 表示终止的字符串结束的前一个位置。

>>>s = 'spam'
>>>s[0], s[-2]
('s', 'a')
>>>s[1:3], s[1:], s[:-1]
('pa', 'pam', 'spa')
>>>

从上面我们可以知道,如果从开头截取到某个特定的位置可以用 [ : a]来表示

>>>s = 'abcdefghijklmnop'
>>>s[:8]
'abcdefgh'

如果从某一位开始截取到最后一位可以用[ a : ]来表示

>>>s[8:]
'ijklmnop'

这里有一点要说明, 在 pyhton中的字符串的索引序号可以是正数也可以是负数,从-1开始算:

>>>s[-1]
'p'
>>>s[-5]
'l'

所以我们还可以这么玩:

>>>s[-3:]
'nop'

2.有步长的切片方式

另外的一种切片方式就是,首先还是定义一格字符串的变量,然后间隔的取出我们的字符串中的字符。

语法格式:

s [start: stop: stride]

同样这里取出来的字符串的结束字符是stop结束的前一个字符

stride表示的是间隔的取出字符串

下面来看几个例子:

>>>s = 'abcdefghijklmnop'
>>>s[1:10:2]
'bdfhj'
>>>s[::2]
'acegikmo'

这个时候我们可以还可以反转字符串

>>>s[::-1] 
'ponmlkjihgfedcba'

间隔逆向的取出字符串:

>>>s[::-2]
'pnljhfdb'

反方向的截取部分的字符串: 

这个时候我们将步长的那个地方设置为负数,表示从右向左取字符串,步长的绝对值大于1表示间隔的取数。

开始的部分那个截取下标也要从负数计算,或者start必须大于结束的下标,因为它是从右开始的截取的。

>>>s = 'abcdefghijklmnop'
>>>s[-1:-8:-1]
'ponmlkj'
>>>s[-1:3:-2]
'pnljhf'
>>>s[10:1:-3]
'khe'

python的字符串切片就是这个样子的。

转载于:https://www.cnblogs.com/ilyou2049/p/11095911.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值