2022年 11月 16日

【Python】切断和strip

1.切断

之前用到切断都是 [start:end]这样的,最近刷题目时候需要反转切断,这时候
就需要第三位参数#step,也就是 [start:end:step]。
参数step可以为正数或者负数,如果是正数就是从左往右,负数就是从右往左。
例1: a = "74981"  b = a[0:5:2]
Index:		0	1	2	3	4
a    :		7	4	9	8	1
b的切断范围就是a的[0:5],从左往右,第一个值为7,然后移动2step,获得第
二个值为9,然后再移动2step,获得第三个值为1,再移动就out of range了,
就停止,返还获得的值,所以:
b	 :		7	9	1

例2: a = "74981"  b = a[4::-1]
Index:		0	1	2	3	4
a    :		7	4	9	8	1
b的切断范围就是a的[4:],从右往左,第一个值为1,然后移动1step,获得第二
个值为8,然后移动1step,获得第二个值为9,依此类推获得4 和 7,直到
out of range的时候停止,并且返还所获得的值,所以:
b	 :		1	8	9	4	7

例3:	a = "74981" b = a[0:5:-1]
这次返还的值为空,因为a[0:5]的方向是从左到右,但是-1给的step是从右往
左,两边没有合集,所以返还为空。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

2. strip, lstrip和rstrip

strip就是把一条string中符合参数的字符去掉:
  • 1
#例1:
test1 = "aaabbbccc"
s1 = test1.strip('ac') #s1 = "bbb"
  • 1
  • 2
  • 3
lstrip和rstrip也比较简单,lstrip就是从左边开始去除,rstrip就是从右边
开始去除,但是值得注意的是,去除是按序去除的,比如lstrip就是从左边开始,
直到下一个字符不包含在参数中,就返还获得的值。
  • 1
  • 2
  • 3
#例2:
test1 = "aaabbbccc"
s1 = test1.lstrip('ac') #s1 = "bbbccc"

#例3:
test1 = "aaabbbccc"
s1 = test1.rstrip('ac') #s1 = "aaabbb"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7