Python字符串操作方法
大小写转换
1.返回S字符串的大写、小写格式
S.lower() S.upper() >>>print('abCD'.lower()) abcd >>>print('abCD'.upper()) ABCD
2.返回S字符串中所有单词的首字母大写且其他字母小写
S.title() >>>print('ab CD'.title()) Ab Cd
3.返回S字符串首字母大写,其余所有字母小写的格式
S.capitalize() >>>print('ab CD'.capitalize()) Ab cd
4.对S字符串中所有字母大写变小写,小写变大写
S.swapcase() >>>print('ab CD'.swapcase()) AB cd
判断语句
1.is判断
- S.islower():判断是否为小写
- S.isupper():判断是否为大写
- S.title():判断首字母是否为大写
>>>print('abc'.islower()) True >>>print('ABC'.isupper()) True >>>print('Ab Cd'.istitle()) True
- S.isspace():判断字符串是否是空白(空格、制表符、换行符)字符
- S.isprintable():判断字符串是否可以打印(制表符、换行符等不可打印,空格可打印)
- S.isdentifier():判断是否满足标识符定义规则
>>>print(' '.isspace()) True >>>print(''.isspace()) False ##没有任何字符不是空白
>>>print(' '.isprintable()) True >>>print('\n'.isprintable()) False
>>>print('1abc'.isdentifier()) False >>>print('_abc_'.isdentifier()) True ## 只能以下划线或者字母开头,并且只能由字母,下划线或者数字组成
- S.isdigit():判断S是否是数字
- S.isalpha():判断S是否是字母
- S.isalnum():判断S 是否是字母或数字
>>>print('121'.isdigit()) True >>>print('abc'.isalpha()) True >>>print('abc121'.isalnum()) True
- S.endswith(t) :字符串S以字符串t结尾,区分大小写
- S.startswith(t): 字符串S以字符串t开头,区分大小写
>>>S="Hello,World!" >>>print(S.endswith('!')) True >>>print(S.startswith('h')) False
设置函数格式
1.将字符串居中,左右两边使用fillchar进行填充,使得整个字符串的长度为width。fillchar默认为空格。如果width小于字符串的长度,则无法填充直接返回字符串本身(不会创建新字符串对象)。
S.center(width[,fillchar]) >>>print('ab'.center(6,'*')) **ab** >>>print('ab'.center(6)) ab >>>print(len('ab'.center(6)) 6 >>>print('abc'.center(2)) abc
2.填充字符串左边(右边),使整体长度为width。若不指定fillchar则认为用空格填充,若width小于或等于字符串S的长度,则无法填充,直接返回字符串。
S.ljust(width[,fillchar]) S.rjust(width[,fillchar]) >>>print('abc'.ljust(5,'*')) xyz** >>>print('abc'.rjust(5,'*')) **abc
3.用0填充在字符串S的左边使其长度为width。如果字符串S由正负号开头,则0填充在这两个符号的后面,且符号也算入长度。 如果width小于或等于字符串S的长度,则无法填充,直接返回S本身。
>>> print('abc'.zfill(5)) 00abc >>> print('-abc'.zfill(5)) -0abc >>> print('+abc'.zfill(5)) +0abc
字符串索引
1.返回字符串S中子串sub出现的次数,可以指定从哪里开始计算(start)以及计算到哪里结束(end),索引从0开始计算,不包括end边界。
S.count(sub[,start[,end]]) >>>print('abababab'.count('ab',1,7)) 2 ##因为index=1,所以从b开始搜索,因为不包括end,所以查找范围为‘bababa’
2.endswith()检查字符串S是否已suffix结尾,返回布尔值的True和False。suffix可以是一个元组(tuple)。可以指定起始start和结尾end的搜索边界。同理startswith()用来判断字符串S是否是以prefix开头。
S.endswith(suffix[, start[, end]]) S.startswith(prefix[, start[, end]])
##suffix为普通字符串时 >>>print('abcabc'.endswith('abc')) True >>>print('abcabc'.endwith('bca',1,4)) True ##搜索范围为‘bca’
##suffix是元组(tuple)时,只要tuple中任意一个元素满足endswith的条件,就返回True。 >>> print('abcxyz'.endswith(('ab','xyz'))) True >>> print('abcxyz'.endswith(('ab','xy'))) False >>> print('abcxyz'.endswith(('ab','xy','z'))) True # tuple中的'z'满足条件
3.find()搜索字符串S中是否包含子串sub,如果包含,则返回sub的索引位置,否则返回"-1"。可以指定起始start和结束end的搜索位置。
rfind()则是返回搜索到的最右边子串的位置,如果只搜索到一个或没有搜索到子串,则和find()是等价的。
S.find(sub[, start[, end]]) S.rfind(sub[, start[, end]]) >>>print('abcefabc'.find('ef')) 3 >>>print('abcefabc'.find('ef',4)) -1 >>>print('abcefabc'.find('bc')) 7
4.index()和find()一样,唯一不同点在于当找不到子串时,抛出ValueError错误。rindex()同理
S.index(sub[, start[, end]]) S.rindex(sub[, start[, end]]) >>>print('abcefabc'.index('ef',4)) ValueError:substring not found
5.可以使用in操作符来判断字符串S是否包含子串sub,它返回的不是索引位置,而是布尔值。
>>>'xy' in 'abcabc' False >>>'ab' in 'abcabc' True
字符串的替换
1.将字符串中的子串old替换为new字符串,如果给定count,则表示只替换前count个old子串。如果S中搜索不到子串old,则无法替换,直接返回字符串S。
S.replace(old, new[, count]) >>>print('abczxcabc'.replace('abc','ABC')) ABCzxcABC >>>print('abczxcabc'.replace('abc','ABC',3)) ABCzxcabc
2.将字符串S中的\t替换为一定数量的空格。默认N=8。注意,expandtabs(8)不是将\t直接替换为8个空格。例如’abc\tab’.expandtabs()会将\t替换为5个空格,因为"abc"占用了3个字符位。
S.expandtabs(N) >>> print('012\t0123\n01234'.expandtabs(7)) 012 0123 01234
3.str.maketrans()生成一个字符一 一映射的table,然后使用translate(table)对字符串S中的每个字符进行映射。
注意:maketrans(x[, y[, z]])中的x和y都是字符串,且长度必须相等。如果maketrans(x[, y[, z]])给定了第三个参数z,则这个参数字符串中的每个字符都会被映射为None。
S.translate(table) static str.maketrans(x[, y[, z]]) >>>in_str = 'abcdef' >>>out_str = '123456' #生成映射表 >>>map_table = str.maketrans(in_str,out_str) #进行映射 >>>s = 'I hate math' >>>result=s.translate(map_table) >>>print(result) I h1t5 m1th ##含z参数 >>>map_table = str.maketrans(in_str,out_str,'ae') >>>result=s.translate(map_table) >>>print(result) I ht mth
分割
1.搜索字符串S中的子串sep,并从sep处对S进行分割,最后返回一个包含3元素的元组:sep左边的部分是元组的第一个元素,sep自身是元组的二个元素,sep右边是元组的第三个元素。
S.partition(sep) S.rpartition(sep)#从右边第一个sep进行分割 S.lpartition(sep)#从左边第一个 >>>print('zxcasdqwe'.partition('asd')) ('zxc','asd','qwe') >>>print('asdzxcasdzxc'lpartition('zxc')) ('asd','zxc','asdzxc') >>>print('asdzxcasdzxc'rpartition('asd')) ('asdzxc','asd','zxc')
2.根据sep对S进行分割,maxsplit用于指定分割次数,如果不指定maxsplit或者给定值为"-1",则会从做向右搜索并且每遇到sep一次就分割直到搜索完字符串。如果不指定sep或者指定为None,则改变分割算法:以空格为分隔符,且将连续的空白压缩为一个空格。
splitlines()用来专门用来分割换行符。
S.split(sep=None, maxsplit=-1) S.rsplit(sep=None, maxsplit=-1) S.splitlines([keepends=True])
>>>'1,2,3'.split(',') ['1','2','3'] >>>'1,2,3'.split(',',1) ['1','2,3'] >>> '<love><><love>'.split('<') ['', 'love>', '>', 'love>'] >>> '<love><><love>'.split('<>') ['<love>', '<love>'] >>>
修剪
S.strip([chars]) S.lstrip([chars]) S.rstrip([chars])
分别是移除左右两边、左边、右边的字符char。如果不指定chars或者指定为None,则默认移除空白(空格、制表符、换行符)。
唯一需要注意的是,chars可以是多个字符序列。在移除时,只要是这个序列中的字符,都会被移除。
- python 字符串的操作方法
- Python中的字符串查找操作方法总结
- python字符串常用操作方法
- Python-字符串操作方法 [转]
- python字符串常用操作方法
- Python 字符串操作方法大全
- Python 字符串操作方法大全
- Python 字符串操作方法大全
- python开发之字符串string操作方法实例详解
- Python 字符串操作方法大全
- python中字符串的操作方法大全
- Python 字符串操作方法大全
- Python3--字符串常用操作方法
- python字符串的常用操作方法小结
- Python 字符串操作方法大全
- Python 字符串操作方法大全
- Python 字符串操作方法大全
- Python 字符串操作方法大全
- Python 字符串操作方法
- Python中的字符串查找操作方法总结