python中字符串的常见操作方法
- 2020 年 1 月 19 日
- 筆記
1. 字符串概念,字符串是一个容器,包含若干个字符并按照一定的顺序组织成一个整体。字符串支持索引操作。
2. 创建字符串基本语法
变量名 = "字符串信息"
变量名 = '字符串信息'
变量名 = """字符串信息"""
变量名 = '''字符串信息'''
3. 注意事项,字符串定义过程中如出现"匹配问题,使用"进行转义
4. 字符串切片概念,字符串切片指获取字符串中的某一部分,形成新的字符串对象。
5. 字符串切片基本语法
字符串[开始索引:结束索引]
字符串[开始索引:结束索引:步长]
6. 字符串操作
状态获取操作
方法名 |
功能 |
参数 |
返回值 |
范例 |
---|---|---|---|---|
islower() 关键词:是否全小写 |
判断字符串是否是全小写字母组成 |
无 |
结果是True或False |
info1 = "fandx"info1.islower() 结果:True info2 = "FANDX"info2.islower() 结果:False |
isupper() 关键词:是否全大写 |
判断字符串是否是全大写字母组成 |
无 |
结果是True或False |
info1 = "fandx"info1.issupper() 结果:False info2 = "Fandx"info2.issupper() 结果:True |
isdigit() 关键词:是否全数字 |
判断字符串是否是由纯数字组成 |
无 |
结果是True或False |
info1 = "666"info1.isdigit() 结果:True info2 = "fandx666"info2.isdigit() 结果:False |
isalpha() 关键词:是否全字母 |
判断字符串是否是由纯字母组成 |
无 |
结果是True或False |
info1 = "fandx"info1.isalpha() 结果:True info2 = "fandx666"info2.isalpha() 结果:False |
isalnum() 关键词:是否全数字字母 |
判断字符串是否是由纯数字和字母组成 |
无 |
结果是True或False |
info1 = "fandx666"info1.isalnum() 结果:True info2 = "fandx_666"info2.isalnum() 结果:False |
istilte() 关键词:是否单词首字母大写 |
判断字符串是否是满足单词首字母大写格式 |
无 |
结果是True或False |
info1 = "FAN dx"info1.istitle() 结果:True info2 = "fandx"info2.istitle() 结果:False |
startswith(str) 关键词:判定前缀 |
判断字符串是否以指定字符串开始 |
str:用于作为判定条件的字符串对象 |
结果是True或False |
info = "logo.png"info.startswith("lo") 结果:True |
endswith(str) 关键词:判定后缀 |
判断字符串是否以指定字符串结束 |
str:用于作为判定条件的字符串对象 |
结果是True或False |
info = "logo.png"info.endswith(".png") 结果:True |
字符转换操作
方法名 |
功能 |
参数 |
返回值 |
范例 |
---|---|---|---|---|
lower() 关键词:转小写 |
字符串中所有字母转小写字母,支持英文字母 |
无 |
结果是一个字符串 |
str1 = "fandx"str1.lower() 结果:"fandx"str2 = "FANDX666"str2.lower() 结果:"fandx666" |
casefold() 关键词:转小写 |
字符串中所有字母转小写字母,支持各种语言 |
无 |
结果是一个字符串 |
str1 = "fandx"str1.lower() 结果:"fandx"str2 = "FANDX666"str2.lower() 结果:"fandx666" |
upper() 关键词:转大写 |
字符串中所有字母转大写字母 |
无 |
结果是一个字符串 |
str1 = "fandx"str1.upper() 结果:"FANDX"str2 = "FANDX666"str2.upper() 结果:"fandx666" |
swapcase() 关键词:大小写互换 |
字符串中字母大写转小写,小写转大写 |
无 |
结果是一个字符串 |
str1 = "FANdx"str1.swapcase() 结果:"fanDX"str2 = "fandx666"str2.swapcase() 结果:"FANDX666" |
title() 关键词:单词首字母大写其他小写 |
字符串中每个单词首字母大写,其余字母小写(区分单词以空格区分) |
无 |
结果是一个字符串 |
str1 = "fandx"str1.title() 结果:"Fandx"str2 = "FANDX"str2.title() 结果:"FANDX" |
capitalize() 关键词:字符串首字母大写其他小写 |
字符串首个字母大写,其余字母小写 |
无 |
结果是一个字符串 |
str1 = "fandx"str1.capitalize() 结果:"Fandx"str2 = "fandx"str2.capitalize() 结果:"Fandx" |
格式转换操作
方法名 |
功能 |
参数 |
返回值 |
范例 |
---|---|---|---|---|
strip (str) 关键词:左右去字符 |
去掉字符串左右两侧在参数字符串中包含的所有字符 |
str:包含了若干个字符的字符串 |
结果是一个字符串 |
str1 = " fandx "str1.strip(" ") 结果:"fandx"str2 = "fandx"str2.strip("fan") 结果:"dx"str3 = "fandx"str3.strip("dx") 结果:"fan" |
lstrip (str) 关键词:左侧去字符 |
去掉字符串左侧在参数字符串中包含的所有字符 |
str:包含了若干个字符的字符串 |
结果是一个字符串 |
str1 = " fandx "str1.lstrip(" ") 结果:"fandx "str2 = "fandx"str2.lstrip("fan") 结果:"dx"str3 = "fandx"str3.lstrip("dx") 结果:"fan" |
ljust (len,str) 关键词:右侧补占位符 |
使用指定字符在原始字符串右侧补充到长度为指定值 |
len:补充字符后的字符串长度 str:补充的字符,如果使用多个字符组成的字符串将报错 |
结果是一个字符串 |
str1 = "fandx"str1.ljust(9,"6") 结果:"fandx6666"str1.ljust(4,"6") 结果:"fandx"str1.ljust(9,"66") 结果:报错 |
rjust (len,str) 关键词:左侧补占位符 |
使用指定字符在原始字符串左侧补充到长度为指定值 |
len:补充字符后的字符串长度 str:补充的字符,如果使用多个字符组成的字符串将报错 |
结果是一个字符串 |
str1 = "fandx"str1.rjust(9,"6") 结果:"6666fandx"str1.rjust(4,"6") 结果:"fandx"str1.rjust(9,"66") 结果:报错 |
center (len,str) 关键词:左右两侧补占位符 |
使用指定字符在原始字符串两侧补充到长度为指定值,左侧补充数量≥右侧补充数量 |
len:补充字符后的字符串长度 str:补充的字符,如果使用多个字符组成的字符串将报错 |
结果是一个字符串 |
str1 = "fandx"str1.center(9,"6") 结果:"66fandx66"str1.center(10,"6") 结果:"666fandx66"str1.center(4,"6") 结果:"fandx"str1.center(9,"66") 结果:报错 |
zfill(len) 关键词:左侧补0 |
使用0在原始字符串左侧补充到长度为指定值,小数点占1位 |
len:补充字符后的字符串长度 |
结果是一个字符串 |
str1 = "3.14"str1.zfill(6) 结果:"003.14"str2 = "314"str2.zfill(6) 结果:"000314"str3 = "3.14"str3.zfill(3) 结果:"3.14" |
拆分操作
方法名 |
功能 |
参数 |
返回值 |
范例 |
---|---|---|---|---|
partition(str) 关键词:左侧查询3段拆分 |
从字符串左侧查找到参数后,将参数左侧、参数、参数右侧的三个字符串组成元组并返回 |
str:比对字符串 |
包含三个字符串的元组对象 |
str1 = "fandx"str1.partition("a") 结果:("f", "a", "ndx")str1.partition("o") 结果:("fandx", "", "") |
rpartition(str) 关键词:右侧查询3段拆分 |
从字符串右侧查找到参数后,将参数左侧、参数、参数右侧的三个字符串组成元组并返回 |
str:比对字符串 |
包含三个字符串的元组对象 |
str1 = "hello python"str1.rpartition("t") 结果: ("hello py", "t", "hon")str1.rpartition("a") 结果: ("", "", "hello python") |
split(str) 关键词:多段拆分 |
使用参数作为分割线将原始字符串拆分成若干个字符串并组织成列表返回 |
str:比对字符串 |
包含多个字符串的列表对象 |
str1 = "hello python"str1.split("o") 结果:["hell", " pyth", "n"]str1.split("oo") 结果:["hello python"] |
splitlines () 关键词: |
使用换行符作为分割线将原始字符串拆分成若干个字符串并组织成列表返回 |
无 |
包含多个字符串的列表对象 |
str1 = "hellonitcastnpython"str1.splitlines() 结果:["hello", "fandx", "python"]str2 = "hello fandx"str2.splitlines() 结果:["hello fandx"] |
连接操作
方法名 |
功能 |
参数 |
返回值 |
范例 |
---|---|---|---|---|
join(str) 关键词:占位连接 |
将原始字符串填充到参数的每个字符之间组成新的字符串返回 |
str:待填充的字符串 |
结果是一个字符串 |
"6".join("fandx") 结果:"f6a6n6d6x""66".join("itcast") 结果:"f66a66n66d66x" |
str1 + str2 关键词:字符串连接 |
将两个字符串按照顺序拼接成一个新的字符串返回 |
无 |
结果是一个字符串 |
"fan"+"dx" 结果:"fandx""hello "+"python" 结果:"hello python" |
查询操作
方法名 |
功能 |
参数 |
返回值 |
范例 |
---|---|---|---|---|
find(str,begin,end) 关键词:左侧查找 |
从左侧查找字符串从指定开始位置到指定结束位置间第一次出现的索引位置 |
str:要查找的字符串 begin:开始索引,整数,该值要小于end,否则结果为-1 end:结束索引,整数,改制要小于begin,否则结果为-1 |
结果是一个int整数,如没有查找到返回-1 |
str1 = "fandx"str1.find("f") 结果:1 str1.find("d",3,6) 结果:3 str1.find("d",6,3) 结果:-1str1.find("nd") 结果:2str1.find("o") 结果:-1 |
rfind(str,begin,end) 关键词:右侧查找 |
从右侧查找字符串从指定开始位置到指定结束位置间第一次出现的索引位置 |
str:要查找的字符串 begin:开始索引,整数,该值要小于end,否则结果为-1 end:结束索引,整数,改制要小于begin,否则结果为-1 |
结果是一个int整数,如没有查找到返回-1 |
str1 = "fandxf"str1.rfind("f") 结果:5 str1.rfind("f",0,4) 结果:1 str1.rfind("t",4,0) 结果:-1 str1.rfind("cast") 结果:2str1.rfind("m") 结果:-1 |
rindex(str,begin,end) 关键词:左侧查找 |
从左侧查找字符串从指定开始位置到指定结束位置间第一次出现的索引位置 |
str:要查找的字符串 begin:开始索引,整数,该值要小于end,否则结果报错 end:结束索引,整数,改制要小于begin,否则结果报错 |
结果是一个int整数,如没有查找到报错 |
str1 = "fandxf"str1.index("f") 结果:1 str1.index("f",3,6) 结果:5 str1.index("f",6,3) 结果:报错str1.index("ndx") 结果:2str1.index("m") 结果:报错 |
rindex(str,begin,end) 关键词:右侧查找 |
从右侧查找字符串从指定开始位置到指定结束位置间第一次出现的索引位置 |
str:要查找的字符串 begin:开始索引,整数,该值要小于end,否则结果报错 end:结束索引,整数,改制要小于begin,否则结果报错 |
结果是一个int整数,如没有查找到报错 |
str1 = "fandxf"str1.rindex("f") 结果:5 str1.rindex("f",0,4) 结果:1 str1.rindex("a",4,0) 结果:报错str1.rindex("nd") 结果:2str1.rindex("m") 结果:报错 |
count(str) 关键词:字符串数量 |
查询指定字符串在原始字符串中出现的次数 |
str:被查询的字符串 |
结果是一个int整数 |
info = "fandxf"info.count("f") 结果:2 info.count("an") 结果:1 |
替换操作
方法名 |
功能 |
参数 |
返回值 |
范例 |
---|---|---|---|---|
replace(old_str,new_str,num) 关键词:替换 |
使用新字符串替换原始字符串中的指定字符串信息 |
old_str:被替换的字符串 new_str:新字符串 num:替换数量 |
结果是一个字符串 |
str1 = "fandxf"str1.replace("f","F") 结果:"FandxF"str1.replace("f","F",1) 结果:"Fandxf" |
expandtabs() 关键词:t换空格 |
使用空格替换原始字符串中的制表位t |
无 |
结果是一个字符串 |
str1 = "66"str2 = "fantdx"str1+str2 "66fan dx" (空白是一个t)str1+str2.expandtabs() "66fan dx"(空白是4个空格) |
其他操作
方法名 |
功能 |
参数 |
返回值 |
范例 |
---|---|---|---|---|
maketrans(str1,str2) 关键词:生成字典 |
使用两个等长的字符串中的每个对应位置的字符生成一个字典对象 |
str1:用于生成字典中key的字符对应的字符串,长度必须与str2相同 str2:用于生成字典中value的字符对应的字符串,长度必须与str1相同 |
包含字符串对应位置字符组成的字典对象 |
str.maketrans("123","abc") 结果: {49: 97, 50: 98, 51: 99} |
translate (dict) 关键词:使用字典关系转换 |
使用字典对字符串信息进行转换 |
dict:包含有转换关系的字典对象 |
结果是一个字符串 |
dict1 = {49: 97, 50: 98, 51: 99}"123456".translate(dict1) 结果:"abc456" |