熟练掌握字符串操作可以使我们的开发效率更高,接下来总结一下python字符串的操作
一、字符串拼接
1.字符串拼接,直接用加号即可,
string1 = "Today is "
string2 = "a sunny day"
string = string1 + string2 + '!'
print(string)
打印结果:Today is a sunny day!
2.字符串列表,可使用 ''.join(iterable) 拼接
strings = ['Today', 'is', 'a', 'sunny','day']
newstr = ' '.join(strings)
print(newstr)
同样打印:Today is a sunny day
这里引号中的内容为一个空格,可以替换成成其他任何字符或字符串,如
' , ' ' : '
等
二、字符串截取和分割
1.截取:
(1)使用 字符串[开始索引:结束索引:步长]
string = '0123456789'
print(string[0:3]) # 使用顺序索引,截取头三个字符
>>012
print(string[-5:]) #使用倒序索引,截取后五个字符
>>56789
print(string[::2]) #忽略下标,即从开始到结尾,以2为步长截取
>>02468
newstr = string[::-1] #这样子可以实现字符串倒序
print(newstr)
>>9876543210
>>表示输出结果
(2)还有一种专门去头去尾的截取 def strip(chars: Optional[str]=...)
string = ' useful string '
print(string.strip())
>>useful string
string2 = '###useful string###'
print(string2.strip('#'))
>>useful string
2.分割:
(1)str.split('分割标示符号')
string = '1,2,3,4'
strlist = string.split(',')
print(strlist)
>>['1', '2', '3', '4']
(2)splitlines(keepends: bool=...) 返回字符列表
这个函数相当于 string.split('\n')
string = 'first line \n second line'
print(string.splitlines())
>>['first line ', ' second line']
string = 'first line \n second line'
print(string.splitlines(keepends=True))
>>['first line \n', ' second line']
三、字符串查找和替换
1.查找、统计
def count(x: Text, start: Optional[int]=..., end: Optional[int]=...) ->int 返回个数
def find(sub: Text, start: Optional[int]=..., end: Optional[int]=...)->int 返回下标
string = '1,1,2,1,3,4'
print(string.count('1'))
>>3
print(string.find('2'))
>>4
#find函数也可以直接用string.index()代替
#不同的是index找不到会报错,find()是返回-1
print(string.index('2'))
>>4
print(string.startswith(('1','2','3'), 2)) #查看第一个string元素是否是给出元组中的元素
>>True
print(string.startswith(('4'))) #除了startswith, 还有endswith()
>>False
其实string类还有rfind(‘char’)函数,返回从后面数起char的第一次出现的下标,
r是reverse的缩写,表示从后面开始,类似的还有rstripe()只去掉后面的空格,rsplit()从后面开始分割, rindex()返回最大 的下标
2.替换def replace(old: str, new: str, count: int=...) ->string
count可以缺省,default=1,替换所有的旧字符串
string = 'abc abc def'
print(string.replace('abc', 'AAA', 1))
>>AAA abc def
四、其他
1.大小写转换
2.encode和decode
3.类型判断
#大小写转换
print('abcd'.capitalize())
>>Abcd
print('abcd'.upper())
>>ABCD
print('ABCD'.lower())
>>abcd
#encode and decode
string = '我爱北京天安门'
temp = string.encode('GBK')
string2 = temp.decode('GBK')
#判断字符串类型
string = '123'
print(string.isascii()) #是否是ASCII编码的值
>>True
print(string.isalnum()) #是否是字母或者数字
>>True
print(string.isdecimal())
>>True
print(string.isnumeric())
>>True
print(string.isdigit())
>>True
后三个函数的区别:
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无
isdecimal()
True: Unicode数字,,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节)
isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte数字(单字节)