python字符串常用操作方法
首先强调一下:字符串属于不可变数据类型,也就是说python创建一个字符串后,你不能把这个字符串的某一部分改变,任何上面的函数改变了字符串后,都会返回一个新的字符串,源字符串并没有改变。
下面总结一下python字符串常用操作,如字符串的替换,删除,切片截取、复制、连接、比较、查找、分割、与列表的相互转换,倒置,排序,,判断等。
1、替换str.replace(str1,str2,num) 用str2替换掉str1 num是次数,默认从左往右
str_1 = "Welcome to python ha ha"
str_2 = str_1.replace('ha', 'Hi', 1).replace('to', 'using')
print(str_2)
>>>"Welcome using python Hi ha"
print(str_1)
>>>"Welcome to python ha ha" # 原字符串的值不变 字符串属于不可变类型数据
2、删除
str.strip(str1) 删除字符串两边的指定字符,括号的写入指定字符,默认为空格
str.lstrip(str1) 删除字符串左边的指定自字符
str.rstrip(str2) 删除字符串右侧指定字符,默认空格
str_1 = ' hello '
str_2 = str_1.strip()
print(str_2)
>>> 'hello'
str_3 = str_1.lstrip()
print(str_3)
>>>' hello'
3、切片截取str[:]
4、复制
str_1 = 'mjy'
str_2 = str_1
print(str_2)
>>> mjy
5、连接 +
str_1 = 'hello'
str_2 = 'girl'
str_3 = str_1 +str2
print(str_3)
>>> 'hello girl'
6、比较cmp(X, Y)
提示:python3已经没有该方法
比较两个对象,并根据结果返回一个整数。X< Y,返回值是负数 ,X>Y 返回的值为正数
#python2
cmd(2, 1)
>>>1
cmd(1, 2)
>>>-1
#python3 没有cmd()方法,只能用>和
cmd(2, 1)
>>>"name 'cmd' is not defined"
7、查找
str.find() str.index()功能相同,区别在于find()查找失败会返回-1,不会影响程序运行。一般用find!=-1或者find>-1来作为判断条件。
str.index:检测字符串中是否包含子字符串str,可指定范围,查找失败会报错
另外还有 str.rfind(str1, start, end)/str.rindex() 从尾部开始查找
str_1 = 'hello world'
str_1.index('l')
>>>2
#str.find:检测字符串中是否包含子字符串str,可指定范围
str_1 = 'hello world'
str_1.find('l')
>>>2
str_1.find('x')
>>>-1
8、分割
str.split(str1)根据指定子字符串对字符串进行分割 默认根据空格对字符串进行分割,结果是列表
str,partition(str1) 把str以str1分割成三部分,str1前,str1和str1后
str.rpartition(str1) 类似于 partition()函数,不过是从右边开始.
str.splitlines() 按照行分隔,返回一个包含各行作为元素的列表
# str.split()
str_1 = 'hello, girl'
res = str_1.split(',')
print(res) # 结果是列表
>>>['hello', 'girl']
# str.partition()
str = 'hello girl and girlbeautiful'
>>> str.partition('girl')
('hello ', 'girl', ' and girlbeautiful')
>>> str.rpartition('girl')
('hello girl and ', 'girl', 'beautiful')
>>> str
'hello girl and girlbeautiful'
# str.splitlines()
str_1 = 'hello\nworld'
>>> str_1.splitlines()
['hello', 'world']
9、与列表相互转换
# 把列表中的元素以指定的字符连接成字符串
res = ['hello', 'girl']
str_1 = ('@').jion(res)
print(str_1)
>>>'hello@girl' # 拼接的字符串结果
str_2 = (',').join(res)
print(str_2)
>>>'hello,girl'
10 倒置
利用切片实现 str[::-1] 生成新的字符串
str_1 = 'hello\nworld'
str_2 = str_1[::-1]
>>> str_2
'dlrow\nolleh'
11判断
str.isalpha() 如果 str 所有字符都是字母 则返回 True,否则返回 False
str.isdigit() 如果 str 只包含数字则返回 True 否则返回 False
str.isalnum()如果 str 所有字符都是字母或数字则返回 True,否则返回 False
str.isspace() 如果 str 中只包含空格,则返回 True,否则返回 False.
str.islower() 如果 str 中字母是否全是小写,则返回 True,否则返回 False.
str.isupper() 如果 str 中字母是否全是大写,则返回 True,否则返回 False.
str.istitle() 字符串中每个单词的首字母大写
str.startwith('str1') 判断是否以str1开头
str.endwith('str1') 判断结尾
12 其他函数
str.upper() 把字符串全部转化成大写字母
str.lower() 把字符串字母全部小写化
str.count(str1) 合计子字符串str1出现的总次数
str.capitalize() 把字符串的首字母大写 其他小写
str.title() 把字符串的每个单词首字母大写
str.ljust(width) 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
str.rjust(width) 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
str.center(width) 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串