注意:不同字符串python给出的可调用函数可能不同。
常用
切片
切片:[起始位置:终止位置:步长];步长:每搁多少个元素进行选取。
切片得到的新字符串与原字符串地址可能不同,不会因原字符串的修改而被修改。
a0=a[ :];将字符串a赋给新字符串a0,注意:此时切片得到的新字符串与原字符串地址相同,但新字符串不会受原字符串的改变而改变。
a1=a[0:5:2];在字符串a的0--4位进行截取,每隔两个元素取一个。
a2=a[0:5];步长默认为1,0--4位的元素全部截取。
a3=a[5:0:-1];逆向截取,步长为1,但是因终止位置为0,不包含第一个元素。
a4=a[5::-1];逆向截取,截取到字符串a的第一个元素。
a5=a[ ::-1];逆向完全截取。
拼接
a3=a1+a2;a1和a2均为字符串,a3为不同地址的新字符串。
a3=a1*3;a3为3个a1字符串拼接而成。
分割
a.split(”x“);将字符串a中的x都去掉,每两个x之间的元素作为一个新元素存放到一个列表内。当字符串a的开头或结尾有x时,在列表中显示为” “元素。
a="12121212121";a.split(”1“)=['', '2', '2', '2', '2', '2', ''],len=7。
a="212121212";a.split(”1“)=['2', '2', '2', '2', '2'],len=5。
替换
a.replace(”x1“,”x2“);把字符串a中出现的所有x1全部替换为x2。
比较
a1=”123“;a2=”123“。
a1==a2;相等返回True;不相等返回False。
a1 is a2;判断两个字符串的地址是否相同。(在代码编程中地址不同,在交互式idle下地址相同)。
常规
a.upper();将字符串a中的字母全部转为大写。
a.lower();将字符串a中的字母全部转为小写。
a.find(”x“);返回“x”的首元素在字符串a中的下标;a.find(”x“,n1,n2);在字符串a的n1--n2范围内查找”x”,若查找不到返回-1。
a.len();返回字符串a的长度,包括空格和标点符号。
a.count(“x”);返回“x”在字符串a中出现的次数;a.count(“x”,n1,n2);在字符串a的n1--n2范围内统计“x”的出现次数,若无,则返回0。
引用
无论单引号字符串还是双引号字符串,在%r引用中都会出现单引号,具体如下图:
a.center(n);返回一个大小为n的新的字符串,使a在新字符串中居中对齐,其余元素为空格。
a.ljust(n);返回一个大小为n的新的字符串,使a在新字符串中靠左对齐,其余元素为空格。
a.rjust(n);返回一个大小为n的新的字符串,使a在新字符串中靠右对齐,其余元素为空格。
a.strip();去除两边的空格。
a.lstrip();去除左边的空格。
a.rstrip();去除右边的空格。
其他
a.capitalize();将字符串a的首字母大写,其余字母小写作返回。(注意与title的区别)
a.casefold();将字符串a的所有字母变为小写返回。(与lower的区别在与casefold更加彻底,例如,德语小写字母 ‘ß’ 相当于 “ss”。 由于它已经是小写了,lower() 不会对 ‘ß’ 做任何改变;而 casefold() 则会将其转换为 “ss”。)。
a.encode('utf-8');对字符串进行编码。
a.decode('utf-8');对字符串进行解码。
完整形式为a.encode(encoding='utf-8', errors='strict');a.decode(encoding='utf-8', errors='strict');encoding也可以为(‘utf-7’)、(‘gbk’)等不同形式的编码,errors可以自定义。
不同编码形式的区别已经探索更多形式的编码,可以直接在CSDN社区查找。
a.endswith(“x”,n1,n2);若字符串a被检索部分的结尾为x,则返回True,否则返回False(n1和n2为被检索部分,注意:n2不表示元素的下标,表示第几个元素);x为空返回True;若x为元组,则元组内含字符串a被检索部分的结尾,则返回True。笔记
a.expandtabs();将字符串a中的制表符(" \t ")用空格来扩展显示出来。
a="{}{}";a.format("a","p")='ap';对字符串a中的{}进行填充,注意填充数量要匹配。
a.format_map();format和format_map方法都可以进行字符串格式化,format是一种所有情况都能使用的格式化方法,format_map仅使用于字符串格式中可变数据参数来源于字典等映射关系数据时才可以使用。
a.index(”x“);在字符串a中查找x;find()只能用于字符串str中,而index可以运用于所有的有序容器中(即字符串str,元组tuple, 列表list)。
a.isalnum();判断字符串是否为字母或数字组合而成的字符串,若是返回True。
a.isalpha();判断字符串是否为字母或汉字组合而成的字符串,若是返回True。
a.isascii();判断字符串是否为ASCII组成的字符串,若是返回True。
a.isdecimal();判断十进制字符串。True: Unicode数字,全角数字(双字节),False: 罗马数字,汉字数字,小数,Error: byte数字(单字节)。
a.isdigit();判断数字字符串。True: Unicode数字,byte数字(单字节),全角数字(双字节),False: 汉字数字,罗马数字,小数,Error: 无。
a.isidentifier();判断字符串a是否为python的内置标识符(if,class,and....)或者判断a是否可以作为变量名称(开头为汉族,字母,下划线等可以;开头为数字,空格,符号等不可以)。
a.islower();判断字符串a中出现的字母是否都为小写字母,若是返回True。
a.isnumeric();判断数字字符串。True: Unicode数字,全角数字(双字节),罗马数字,汉字数字,False: 小数,Error: byte数字(单字节)。
a.isprintable();判断字符串a是否可以打印(不含转义字符 \t \n \b等),若是返回True。
a.isspace();判断字符串a是否为空白字符串(包括 \t \n),若是返回True。
a.istitle();判断字符串a是否为title类型的字符串,若是返回True。
a.isupper();判断字符串a是否为upper类型的字符串,若是返回True。
”x“.join(a);将字符串x插入到a(可以为字符串或列表元组)中的每个字符或元素之间,并返回一个新的字符串。
str.maketrans("x1","x2","x3");生成一个字典,记录对字符串“x1”的各元素的修改情况:将字符串“x1”修改为x2,x3为删除项,x1要与x2长度相同。具体见maketrans
a.partition("x");将字符串a在x处进行切割,生成一个元组,若x不在a内,则生成一个含三个元素的元组,第一个元素为字符串a,后两个元素为空字符串(”“)。
a.replace(”x1“,”x2“,n);将字符串a中所有出现的x1替换为x2,n为从第一个x1开始的替换次数,不输入n则默认为-1(全部替换)。若n=0,则不进行替换。
a.rfind(”x“);从字符串a右边开始进行find。
a.rindex(”x“);从字符串a右边开始进行index。
a.rpartition(”x“);从字符串a的右边进行partition,生成一个元组,若x不在a内,则生成一个含三个元素的元组,前两个元素为空字符串(”“),最后一个元素为字符串a。
a.rsplit(”x“,n);从字符串a的右边进行split。
a.split(“x”,n);从x处拆分字符串a,生成列表,并丢弃所有的x,n表示拆分次数;若无参数“x”,则默认从空白处拆分,并丢弃空字符串。若无参数n,则默认n=-1(拆分所有出现的x);若字符串a中不含x,则生成含一个元素(字符串a)的列表。
a.splitlines(keepends=True);字符串a以(’\r’, ‘\r\n’, \n’)作为分割符,将字符串分割为一个列表,若keepends=False;则分割后的列表内不含分割符。
a.startswith(“x”,n1,n2);若字符串a被检索部分的开头为x,则返回True,否则返回False(n1和n2为检索范围,检索全部可不加);x为空返回True;若x为元组,则元组内含字符串a被检索部分的开头,则返回True。笔记
a.swapcase();返回一个新字符串,其中大写字符转换为小写,小写字符转换为大写。a.swapcase().swapcase()不一定为a,如含'ß'的字符串a。
a.title();将字符串a中的所有单词的首字母大写,其余字符不变。
a.translate(str.maketrans("x1","x2","x3"););将a中出现的x1中的所有元素,修改为x2中对应的元素,并删除a中出现的x3(注意先做删除,再做修改)。
a.zfill(n);返回一个长度为n的新字符串,该字符右对齐,前面补0;若a前面为“+”,“-”号,则新字符串长度仍为n,最前面的符号不变,符号后面补0。
字符串的遍历
for i in str:
print(i,type(i)) #打印出字符串中的每个元素,并给出该元素的数据类型。