本文记录了python中字符串常用的切片操作,该操作也适用于列表、元组。同时记录了字符串的常用操作。
'''
字符串 / 列表 / 元组 的切片操作,方式都一样,本段以字符串为例子
基本语法:
obj.[start:end:step]
取值范围为 [start - end),左闭右开,step为步长(默认大小为1,方向从左往右)(个人理解:步长 = 间隔 + 1)
'''
s = '0123456789'
print(s[3:7]) # 取出该索引区间(区间为:[3,7))的内容 --> 3456
print(s[:]) # 取出s所有的内容 --> 0123456789
print(s[2:]) # 从第2个索引处(index = 2)开始取出后面内容 --> 23456789
print(s[:5]) # 从第0个索引处开始取出到该索引处(index = 5)的前一位的所有内容 --> 01234
print(s[:-2]) # 从第0个索引处开始取出到倒数第2个索引处的前一位的所有内容 --> 01234567
print(s[-4:-1]) # 从倒数第4个索引处开始取出到倒数第1个索引处的前一位的所有内容 --> 678
print(s[1:8:2]) # 从第1个索引处(index = 1)开始,步长为2(每间隔1个字符取一位),到第8个索引处(index = 8)前一位结束 --> 1357
print(s[::-1]) # 从后向前取,步长为1,方向从右向左 (即可完成逆置字符串的功能) --> 9876543210
'''
常见的字符串操作,本例列举27个,操作区间为左闭右开
'''
sts = 'Made in china'
print(sts.find('in')) # 在整个sts中查找是否存在'in',若存在,返回首字母下标,否则返回-1. --> 5
print(sts.find('in', 1, 7)) # 在该区间[1, 7)中查找'in'是否存在. --> 5
print(sts.find('in', 1, 6)) # 在[1, 6)中查找'in'是否存在. --> -1
print(sts.rfind('in')) # 功能同上,但从右向左查. --> 10
print(sts.index('in')) # 功能同上,但若没查找到则报异常,一般使用不带第二、三参数. -->5
# print(sts.index('in', 1, 6)) # 在[1, 6)范围内查找. --> 会报错,因为该范围内没有'in'
print(sts.rindex('in')) # 功能同上,但从右往左查. --> 10
print(sts.count('in', 0, len(sts))) # 'in'在sts的该区间内出现的次数,一般可以不带第二、三参数. --> 2
print(sts.replace('e', 'f', 3)) # 将'e'替换成'f',但修改的'e'的数量不超过3次,从左往右修改,若无第三参数则默认都修改. --> Madf in china
print(sts.split('i', 2)) # 从左往右将'i'取消,第二个参数的数量,i两边的字符变成列表中的两个元素,若i连续,则用''代替. --> ['Made ', 'n ch', 'na']
print(sts.capitalize()) # 将字符串开头字母大写,其他小写. --> Made in china
print(sts.title()) # 所有单词的首字母大写,其他的小写. --> Made In China
print(sts.startswith('M')) # 检查字符串是否以'M'开头,是返回True,否则返回False. --> True
print(sts.endswith('a')) # 检查字符串是否已'a'结尾,是返回True,否则返回False. --> True
print(sts.lower()) # 所有大写字母转为小写. --> made in china
print(sts.upper()) # 小写转大写. --> MADE IN CHINA
print(sts.ljust(len(sts) + 1)) # (左对齐)将sts右端添加1个空白符. --> 'Made in china '
print(sts.rjust((len(sts) + 1)) # (右对齐) 将sts左端添加一个空白符. --> ' Made in china'
print(sts.center((len(sts) + 2)) # (居中) 将sts两端各添加一个空白符. --> ' Made in china '
print(sts.lstrip()) # 删除字符串左侧的空白符
print(sts.rstrip()) # 删除右侧空白符
print(sts.strip()) # 删除两端字符串
print(sts.partition('in')) # 将sts分割成三部分,in前面的,in和in后面的,以元组返回. --> ('Made ', 'in', ' china')
print(sts.rpartition('in')) # 功能同上,只是从右向左分割. --> ('Made in ch', 'in', 'a')
print(sts.splitlines()) # 按照行分割成列表中不同的元素
print(sts.isalpha()) # 如果sts全部是字母,则返回True,否则False. --> False
print(sts.isdigit()) # 如果全是数字,则返回True,否则False. --> False
print(sts.isalnum()) # 如果只由字母或数字组成,则返回True,否则False. --> False
print(sts.isspace()) # 如果只有空格,则返回True,否则False. --> False
#将list中的每个元素之间插入整个sts,并将列表返回为一个字符串
list = ['b', 'e', 'i']
print(sts.join(list)) # --> bMade in chinaeMade in chinai. 若sts == '',则可实现list转string
'''
顺便提一下,本人目前没有找到可直接操作字符串进行删除某些字符的方法,
但可以通过将str转为List之后删除,再将List通过join()转为str即可。有好方法的朋友请留言,感谢!
'''
结束