字符串的通用序列操作

序列是一块用来存放多个值的连续内存空间。Python中常用的序列结构有:字符串列表元组等。

所有序列类型都可以进行某些操作,这些操作被称为通用序列操作。这些操作包括:索引分片以及检查某个元素是否属于序列的成员。除此之外,还有计算序列长度找出最大元素和最小元素等。

字符串,由字符组成的序列。

索引

序列中的所有元素都可以索引(下标)来访问,从左往右,第一个元素的索引为0,第二个为1,依此类推到最后一位。索引还可以取负值,从右往左,最后一个元素的索引为-1,倒数第二个为-2,依此类推。

访问格式为:变量名[索引]

str = 'python'
print(str[0])
print(str[-1])

最后得到的结果是:

p
n

上述代码定义了一个变量str,里面存放了一个字符串python。str[0],也就是访问下标为0的元素,即p。str[-1],访问索引为-1的元素,即n

分片

  • 分片与索引类似,都可以获得序列中的元素,区别是索引只能获取单个元素,而分片可以获得一定范围内的元素。

  • 分片通过冒号隔开的两个索引来实现,其语法是:

  • slice[start:end:step]

  • 其中,slice表示序列,start表示起始索引,end表示结束索引(不包含结束位本身),step表示步长(默认为1,不能为0)。

假设str = 'abcdefg',下面描述分片获取元素的几种情况:

分片方式 描述 结果
strs[1:] 获取strs中从索引为1开始到最后一个的所有元素 'bcdefg'
strs[:3] 获取strs中从索引0到索引3(不包含索引为3的元素)之间所有元素 'abc'
strs[1:3] 获取strs中从索引1到索引3(不包含索引为3的元素)之间所有元素 'bc'
strs[:-1] 获取strs中从索引0开始到最后一个元素(不包含最后一个元素)之间的所有元素 'abcdef'
strs[-3:-1] 获取strs中从索引-3开始到最后一个元素(不包含最后一个元素)的所有元素 'ef'
strs[-3:] 获取strs中最后三个元素 'efg'
strs[:] 获取strs中所有元素 'abcdefg'

tips(提示):

1.省略“start”起始索引,表示从序列中的第一个元素开始。

2.省略“end”结束索引,表示到序列的最后一个元素结束。

  • 省略开始和结束索引,代表的是所有元素,如果步长设置为2,那么就会访问所有元素中每隔两个步长得到的元素。
strs = 'abcdefg'
print(strs[::2])

上述代码得到的结果为'aceg'

  • python中规定步长不能设置为0,但可以设置为负数。当步长为负数时,分片索引的开始点必须大于结束点,即分片从右往左提取元素。
strs = 'abcdefg'
print(strs[7:0:-1])
print(strs[-1:-8:-1])
print(strs[::-1])

上述代码得到的结果是:

'gfedcb'
'gfedcba'
'gfedcba'

注意:上述代码需要注意观察start索引和end索引为正和为负两种情况!

序列相加

序列可以使用加法操作进行连接。

'Hello,' + 'World'	# 字符串序列连接

结果:Hello,World

[1,2,3] + [4,5,6]	# 列表序列连接

结果:[1,2,3,4,5,6]

tips:只有两种相同类型的序列才能进行连接操作!

乘法

使用数字n乘以一个序列会生成新的序列,在新的序列中,原来的序列将被重复n次。

strs = 'hello' * 3

结果:hellohellohello

tips:当输入连续相同的字符时,可使用序列的乘法运算进行实现。

长度、最小值和最大值

序列有3个非常好用的内建函数:len()、min()、max()函数。其参数都为序列名,其中len()函数返回序列中所包含元素的个数;min()函数和max()函数则分别返回序列中最小和最大的元素。

strs = [0,1,2,3]
print(len(strs))
print(min(strs))
print(max(strs))

结果:

4
0
3

tips:通用序列操作还包括成员运算符“in”和“not in”。

# in和not in是用来判断一个元素是否在某个序列中,如:字符串、列表、元组等。
x in y	# 在y中找到x的值返回True,否则返回False
x not in y	# 在y中未找到x的值返回True,否则返回False
posted @ 2021-10-10 16:01  Cara_Smith  阅读(268)  评论(0编辑  收藏  举报