python字符串常用方法归纳:

上代码:

# 方法1大小写切换


.capitalize - 将字符串首字母编程大写
.casefold - 将所有字符变成小写
.title - 每个单词首字母大写
.swapcase - 大小写反转
.upper - 所有变大写
.lower - 所有变小写


# 方法2左中右对齐


center(width,fillchar=’’) 左右填充后居中
a='0000000000'
print(a.center(20,'*'))
结果:*****0000000000*****   --宽度20,两侧用*填充,原字符串居中
print(a.center(20))
结果:     0000000000         --宽度20,两侧用空格填充,原字符串居中

ljust(width,fillchar=’’) 填充后左对齐
a='0000000000'
print(a.ljust(20,"*"))
结果:0000000000**********   --宽度20,原字符串左对齐,右侧用*填充
print(a.ljust(20))
结果:0000000000              --宽度20,原字符串左对齐,右侧用空格填充

rjust(width,fillchar=’’) 填充后右对齐
举例同ljust
zfil(width) 用0填充
a='aaaaaaaaaa'
b=a.rjust(10)    --b右对齐
c=b.zfill(20)
print(c)
结果:0000000000aaaaaaaaaa   --宽度20,原字符串右对齐,左侧剩余位置用0填充


# 方法3查找


count(sub,start,end) 在指定位置查找sub指定的子字符串出现次数
a='abcdeabfghijk'
print(a.count("ab",0,5))
结果:1
print(a.count("ab"))
结果:2
find(sub,start,end) 在指定位置从左往右查下标索引
a='abcdeabfghijak'
print(a.find("a",3,10))   --只返回查找范内找到的第一个子串的索引
结果:5
print(a.find("a"))
结果:0
rfind(sub,start,end) 在指定位置从右往左查下标索引
举例同find
index(sub,start,end) 在指定位置从左往右查下标索引,同find,但若查不到会抛出异常
rindex(sub,start,end) 在指定位置从右往左查下标索引,同find,但若查不到会抛出异常


# 方法4替换


expandtabs([tabsize=8])   --tabsize - 这指定了替换字符“\t”要替换的字符数,默认值是8
a='ab\tcd\tefg'
print(a.expandtabs(4))
结果:ab  cd  efg  --此方法返回一个字符串的副本,其中使用空格扩展了“\t”字符。
print(a.expandtabs())
结果:ab      cd      efg

replace(old,new,count=-1)   count表示从左向右替换的次数,负数替换所有
str1 = "dfdsffff"
str2 = str1.replace('f', '@')
print(str2)
结果:d@ds@@@@
str3 = str1.replace('f', '@', 1)
print(str3)
结果:d@dsffff
str3 = str1.replace('f', '@', -1)
结果:d@ds@@@@

translate(tabe)  必需的参数,字典或描述如何执行替换的映射表
txt = "Hello Sam!"
mytable = txt.maketrans("S", "P")
print(txt.translate(mytable))
结果:Hello Pam!    --使用映射表将“S”替换为“P”

-------------------------------------------
txt = "Hi Sam!"
x = "maS"
y = "ejo"
mytable = txt.maketrans(x, y)
print(txt.translate(mytable))
结果:Hi oje!       --使用映射表替换多个字符
-------------------------------------------
txt = "Good night Sam!"
x = "mSa"
y = "eJo"
z = "odnght"
mytable = txt.maketrans(x, y, z)
print(txt.translate(mytable))
结果:G i Joe!     --映射表中的第三个参数描述了要从字符串中删除的字符


# 方法5截取


strip(char-None) 去除左右空白,参数传入字符串可以以单个字符作为匹配,														去除左右两端的字符
str1 = "    dsfdsffff    "
str2 = str1.strip()
print(str2)
结果:dsfdsffff      --未传参时,去除左右空白
str1 = "ssssdsfdsffffssss"
str2 = str1.strip('s')
print(str2)
结果:dsfdsffff     --传参时,去除左右两端的匹配的字符
lstrip(char-None) 去除左侧空白,参数传入字符串可以以单个字符作为匹配,														      去除左侧字符
举例同strip(char-None)

rstrip(char-None) 去除右侧空白,参数传入字符串可以以单个字符作为匹配,														      去除右侧字符
举例同strip(char-None)
方法6拆分&拼接
split(sep=None,maxsplit=-1) 以指定字符串为分隔符分割,maxsplit为分割次数
txt = "apple@banana@cherry"
x = txt.split("@",-1)
print(x)
结果:['apple', 'banana', 'cherry']    --并以列表的形式打印
txt = "apple@banana@cherry"
x = txt.split("@")
print(x)
结果:['apple', 'banana', 'cherry']    --效果与maxsplit=-1一样
txt = "apple@banana@cherry"
x = txt.split("@",1)
print(x)
结果:['apple', 'banana@cherry']          --从左往右,划分1次
rsplit(sep=None,maxsplit=-1)
举例同split   (,maxsplit=1时,从右往左划分一次)
join(iterable) "连接符".join((元组或列表)) 使用连接符拼接列表或元组中的元素
list1 = ['a','b','c','d']  
str1 = "@".join(list1)      -- 效果与split相反
print(str1)
结果:a@b@c@d    --使用连接符拼接列表或元组中的元素