泛览天下

阅读,看尽天下事

Python字符串、列表、元组切片操作,以及字符串的常用操作

2022-08-04 02:27:28


'''字符串 / 列表 / 元组 的切片操作,方式都一样,本段以字符串为例子基本语法: obj.[start:end:step] 取值范围为 [start - end),左闭右开,step为步长(默认大小为1,方向从左往右)(个


本文记录了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即可。有好方法的朋友请留言,感谢!
'''

结束