标签:保留 lis ash 否则 mda 宽度 asc water 根据
Python str常用方法
一、字母处理
1、全部大写:str.upper()
str1 = ‘nostalgia‘
str2 = str1.upper()
print(str2)123
NOSTALGIA
1
2、全部小写:str.lower()
str1 = ‘NOSTALGIA‘
str2 = str1.lower()
print(str2)123
nostalgia
1
3、大小写互换:str.swapcase
str1 = ‘No Smouking‘
str2 = str1.swapcase()
print(str2)123
nO sMOUKING
1
4、首字母大写,其余小写:str.capitalize()
str1 = ‘nostalgia fly‘
str2 = str1.capitalize()
print(str2)123
Nostalgia fly
1
5、首字母大写:str.title()
str1 = ‘nostalgia fly‘
str2 = str1.title()
print(str2)123
Nostalgia Fly
1
6、应对所有字母的小写:str.casefold()
str.lower() 只能转换ASCII字母。
str1 = ‘NOSTALGIA‘
str2 = str1.casefold()
print(str2)123
nostalgia
1
二、格式化
字符串格式化:str.format()
1,无参数
print("{}喜欢{}".format(‘tom‘,‘打球‘)) #不指定位置
print((‘{0}除了{1}还是{1}‘).format(‘tom‘,‘打球‘) ) #指定位置12
tom喜欢打球
tom除了打球还是打球
12
2,设置参数
dict1 = {‘name‘:‘tom‘,‘play‘:‘打球‘}
print(‘{name}非常喜欢{play}‘.format(name=‘tom‘,play=‘打球‘))
print(‘{name}非常喜欢{play}‘.format(**dict1)) #通过字典设置
print(‘{0[0]}非常喜欢{0[1]}‘.format([‘tom‘,‘打球‘])) #通过列表设置1234
tom非常喜欢打球
tom非常喜欢打球
tom非常喜欢打球
123
test = ‘i am {name}, age {a}‘
v1 = test.format(name=‘df‘,a=10)
v2 = test.format_map({"name": ‘alex‘, "a": 19}) #字典
print(v1)
print(v2)12345
i am df, age 10
i am alex, age 19
12
对数字的格式化
print(‘{:.2f}‘.format(3.1415926))1
3.14
1
{:.2f}—保留小数点后两位;
{:+.2f}—带符号保留小数点后两位
{:.0f}—不带小数
{:0>5d}—数字补零 (右对齐, 宽度为5,剩余以0填充)
{:a<5d}—数字补a (左对齐, 宽度为5,剩余以a填充)
{:,}—以逗号分隔的数字
{:.2%}—转换百分制并保留小数点后2位
{:.2e}—指数计数并保留小数点后2位
{:^10d}—中间对齐
字符串对齐
1、左对齐:str.ljust(width[, fillchar])
参数:width – 指定字符串长度;fillchar – 填充字符,默认为空格。
返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
str1 = ‘NOSTALGIA‘
str2 = str1.ljust(20,‘人‘)
print(str2)123
NOSTALGIA人人人人人人人人人人人
1
2、右对齐:str.rjust(width[, fillchar])
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串
str1 = ‘NOSTALGIA‘
str2 = str1.rjust(20,‘&‘)
print(str2)123
&&&&&&&&&&&NOSTALGIA
1
3、居中:str.center(width[, fillchar])
该方法返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。
str1 = ‘NOSTALGIA‘
str2 = str1.center(20,‘@‘)
print(str2)123
@@@@@NOSTALGIA@@@@@@
1
4、右对齐,以“0”填充:str.zfill(width)
返回指定长度的字符串,原字符串右对齐,前面填充0。
str1 = ‘NOSTALGIA‘
str2 = str1.zfill(22)
print(str2)123
0000000000000NOSTALGIA
1
字符串断句:str.expandtabs(tabsize=8)
test1 = ‘kkkkkkkl\t‘
test2 = ‘name\tage\tgender\ttom\t23\tmale\tlucy\t18\t‘
print(test1.expandtabs(20))
print(test2.expandtabs(20))1234
kkkkkkkl
name age gender tom 23 male lucy 18
12
三、字符串搜索
1、检测字符串中是否包含子字符串 :str.find(str, beg=0, end=len(string))
参数
str – 指定检索的字符串
beg – 开始索引,默认为0。
end – 结束索引,默认为字符串的长度。
如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
str1 = ‘NOSTALGIA‘
str2 = str1.find(‘no‘)
print(str2)123
-1
1
str1 = ‘NOSTALGIA‘
str2 = str1.find(‘AL‘)
print(str2)123
4
1
str1 = ‘NOSTALGIA‘
str2 = str1.find(‘AL‘,5)
print(str2)123
-1
1
2、查找字符串最后一次出现的位置(从右向左查询)str.rfind(str, beg=0 end=len(string))
与find查看顺序相反
str1 = ‘NOSTALGIAL‘
str2 = str1.rfind(‘AL‘)
print(str2)123
8
1
str1 = ‘NOSTALGIAL‘
str2 = str1.find(‘AL‘)
print(str2)123
4
1
3、统计子字符串出现次数:str.count(sub, start= 0,end=len(string))
可选参数为在字符串搜索的开始与结束位置
str1 = ‘NOSTALGIAL‘
str2 = str1.count(‘AL‘)
print(str2)123
2
1
4、index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内.
该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。
str1 = ‘NOSTALGIAL‘
str2 = str1.index(‘oL‘)
print(str2)123
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-31-953941da824f> in <module>()
1 str1 = ‘NOSTALGIAL‘
----> 2 str2 = str1.index(‘oL‘)
3 print(str2)
ValueError: substring not found
1234567891011
5,通用方法
(1)获取字符串长度
test = ‘wayjdsji124‘
print(len(test))12
11
1
(2)索引与下标
test = ‘hello world‘
print(test[3])12
l
1
(3)切片
test = ‘hello world‘
print(test[:])
print(test[:-1])
print(test[3:-2])1234
hello world
hello worl
lo wor
123
(4)取出字符串每个字符
test = ‘hello world‘
for i in test:
print(i)123
h
e
l
l
o
w
o
r
l
d
1234567891011
四、替换
1,字符串中的 old(旧字符串) 替换成 new(新字符串):str.replace(old, new[, max])
如果指定第三个参数max,则替换不超过 max 次。
str1 = "This is a good new.That is so bad.It is a big apple.It is a dog."
str2 = str1.replace("is","was",3)
print(str2)123
Thwas was a good new.That was so bad.It is a big apple.It is a dog.
1
2,对应关系替换
test = "abcde"
test1 = "12345"
sjd = "ayewurbnsmrcksjfdorkgelg"
qwe = str.maketrans("abcde", "12345")
new_sjd = sjd.translate(qwe)
print(new_sjd)
12345678
1y5wur2nsmr3ksjf4orkg5lg
1
五、字符串去除指定字符
1、移除头尾指定字符(默认空格):str.strip([chars])
str1 = ‘**** beauty ********‘
str2=str1.strip("*")
print(str2)
print(str2.strip())
12345
beauty
beauty
12
2、去左侧指定字符(默认空格):str.lstrip([chars])
str1 = ‘**** beauty ********‘
str2=str1.lstrip("*")
print(str2)123
beauty ********
1
2、去左侧指定字符(默认空格):str.rstrip([chars])
str1 = ‘**** beauty ********‘
str2=str1.rstrip("*")
print(str2)123
**** beauty
1
字符串分割
1、将字符串分割为列表:str.split(str=”“, num=string.count(str))
如果参数num 有指定值,则仅分隔 num+1 个子字符串
str1 = ‘safdfg\nsfegewh\n12341y\n‘
list1 = str1.split(‘\n‘,3)
print(list1)123
[‘safdfg‘, ‘sfegewh‘, ‘12341y‘, ‘‘]
1
2,根据指定的分隔符将字符串分割成三元数组:str.partition(str)
test = ‘yourswater‘
print(test.partition(‘s‘))12
(‘your‘, ‘s‘, ‘water‘)
1
3,按照行(‘\r’, ‘\r\n’, \n’)将字符串分割成列表:str.splitlines([keepends])
keepends – 在输出结果里是否去掉换行符(‘\r’, ‘\r\n’, \n’),默认为 False,不包含换行符,如果为 True,则保留换行符。
str1 = ‘ab c\n\nde fg\rkl\r\n‘
print(str1.splitlines(False))
str2 = ‘ab c\n\nde fg\rkl\r\n‘
print(str2.splitlines(True))12345
[‘ab c‘, ‘‘, ‘de fg‘, ‘kl‘]
[‘ab c\n‘, ‘\n‘, ‘de fg\r‘, ‘kl\r\n‘]
12
七、字符串判断
1、以指定字符串开头:str.startswith(str, beg=0,end=len(string));
str1 = ‘jefrewpflmspemg42sd‘
print(str.startswith("w",5))12
True
1
2、以指定字符串结尾:str.endswith(suffix[, start[, end]])
str1 = ‘isoaldsjfj123ksl‘
print(str1.endswith(‘s‘,3,-1))12
True
1
3、检测字符串是否由字母和数字组成:str.isalnum()
str1 = ‘fewf125hreh‘
print(str1.isalnum())12
True
1
4、检测字符串是否只由字母组成:str.isalpha()
str1 = ‘sjdgnewombdfg‘
print(str1.isalpha())12
True
1
5、检测字符串是否只由数字组成:str.isdigit()
不能有任何字符,包括”.”
str1 = ‘3141592653‘
print(str1.isdigit())12
True
1
6、检测字符串是否由小写字母组成:str.islower()
str1 = ‘sjfewovdogj‘
print(str1.islower())12
True
1
7、检测字符串是否全由大写字母组成:str.isupper()
str1 = ‘USJEKKGHXKD‘
print(str1.isupper())12
True
1
八、连接
str.join(sequence) 将序列中的元素以指定的字符连接生成一个新的字符串
参数sequence -- 要连接的元素序列;
123
list1 = [‘hels‘,‘sdfg‘,‘dsg‘,‘345‘]
dict1 = {‘god‘:‘sdf‘,‘dgg‘:‘we‘,‘ewr‘:‘435‘}
tup1 = (‘ty‘,‘rj‘,‘45‘)
s1 = {‘we‘,‘34‘,‘12‘}
print(‘-‘.join(list1))
print(‘-‘.join(dict1))
print(‘-‘.join(tup1))
print(‘-‘.join(s1))12345678
hels-sdfg-dsg-345
god-dgg-ewr
ty-rj-45
34-12-we
标签:保留 lis ash 否则 mda 宽度 asc water 根据
原文地址:https://www.cnblogs.com/ZZYMiss/p/10581946.html