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
world'
>>> 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
world'
str_2 = str_1[::-1]
>>> str_2
'dlrow
olleh'
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 的新字符串