概述
Python中字符串是作为一种强大的处理工具集的存在,而不是类C中使用的那么难受。因为Python提供了一系列字符串操作的方法,从大小写转换、切片操作到查找等等应有尽有,几乎满足日常的使用场景,当然如果满足不了需求还可以得助于更加强大的第三方库比如string
,re
等。下面就介绍了Python3中44个字符串内置方法的基本概述及简单示例。
44个字符串内置方法概述
方法 | 描述 |
---|---|
capitalize | 返回S的大写版本,即创建第一个字符,为大写字母,其他为小写字母 |
casefold | 返回全小写 |
center | 使字符串产生居中效果,默认填充为空格,也可指定填充单个字符 |
count | 返回子字符串sub的非重叠出现次数, string S [start:end]。 可选参数start和end为切片表示法。即在切片范围内统计指定字符串的出现次数,如果不指定即在整个字符串内统计指定字符串出现次数 |
encode | 字符串编码转换,默认为encoding='utf-8' |
endswith | 测试字符串结尾是否为指定字符串,也可指定字符串结尾 |
expandtabs | 将字符串中的tab制表符转换为空格,一个字表符默认为8个空格 |
find | 在字符串中查找指定字符,找到则返回最小的索引,没有则返回-1,也可以加上分片指定字符串中索引范围 |
format | 字符串格式化的一种方法,将需要格式化的地方填充{} |
format_map | 字符串格式化的一种方法,接收的参数为字典,通过映射的方式格式化 |
index | 寻找字符串中出现指定的第一个索引 |
isalnum | 字符串中是否全部为数字字符,并至少有一个字符,若是则返回Ttue,否则返回False |
isalpha | 字符串中是否全部为英文字母,并至少有一个字符,若是则返回True,否则返回False |
isdecimal | 判断字符串是否只有十进制字符,若是则返回True,否则返回False |
isdigit | 判断字符串中是否全部为数字,并至少有一个字符,若是则返回True,否则返回False |
isidentifier | 判断字符串是否为有效定义 |
islower | 判断字符串是否全部为小写字符,若是则返回True,否则返回False |
isnumeric | 判断字符串中是否全部为数字,若是则返回True,否则返回False |
isprintable | 判断字符串中所有字符是否都是可打印字符(in repr())或字符串为空。 |
isspace | 判断字符串是否全部为空格,若是则返回True,否则返回False |
istitle | 判断字符串是否为一个标题字符串,即每个单词首写字母都为大写,若是则返回True,否则返回False |
isupper | 判断字符串中是否全部为大写字符,若是则返回True,否则返回False |
join | 将序列中的元素以指定的字符拼接成新的字符串 |
ljust | 使字符串左对齐,当len(s)<width时,多余的字符默认为空,也可以指定填充单个字符 |
lower | 将字符串全部转为小写字符 |
lstrip | 删除字符串最前面的空格,回车,制表符等 |
maketrans | 返回一个用translate的转换表,示例中ste 与abc 为映射关系,每个字符相对应(s->a,t->b,e->c),outtab 用于替换intab 出现在需要处理的字符串中,第三个参数为需要删除的字符 |
partition | 搜索指定分隔符,并返回第一个分隔符之前的部分,第一个分隔符本身,和第一个分隔符之后的部分 |
replace | 字符串替换,replace(self, old, new, count=None) ,接受参数依次是需要替换的字符串,替换后的字符串,和可选参数替换次数,默认为全部替换 |
rfind | 在字符串中查找指定字符,找到则返回最大的索引,没有则返回-1,也可以加上分片指定字符串中索引范围 |
rindex | 在字符串中查找指定字符,找到则返回最大的索引,没有则返回-1,也可以加上分片指定字符串中索引范围 |
rjust | 使字符串右对齐,当len(s)<width时,多余的字符默认为空,也可以指定填充单个字符 |
rpartition | 搜索指定分隔符,并返回最后一个分隔符之前的部分,最后一个分隔符本身,和最后一个分隔符之后的部分 |
rsplit | 从右向左寻找,以某个元素为中心将左右分割成两个元素并放入列表中,maxsplit参数默认为-1,表示根据指定分割字符全部分割,maxsplit=1 即根据指定分割字符仅分割一次,使用效果和rpartition类似 |
rstrip | 删除字符串最后面的空格,回车,制表符等 |
split | 从左向右寻找,以某个元素为中心将左右分割成两个元素并放入列表中,maxsplit参数默认为-1,表示根据指定分割字符全部分割,maxsplit=1 即根据指定分割字符仅分割一次,使用效果和partition类似 |
splitlines | 以换行符('\r', '\r\n', \n')分割为列表,参数keepends 默认False,不包含换行符,如果为True,则保留换行符 |
startswith | 判断字符串开头是否为指定字符串,若是则返回True,否则返回False |
strip | 删除字符串左右两边的空格,回车,制表符等 |
swapcase | 将字符串中大小写字符翻转为小大写字符 |
title | 将字符串转为标题字符串,即每个单词首字母大写 |
translate | 根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中。table表是通过maketrans方法转换而来 |
upper | 将字符串全部转为小写字符 |
zfill | 当len(s)<width时,从左边开始用0填充 |
44种方法使用示例
# 示例s = 'str_test'print('s.capitalize'.center(40, '-'))# 返回S的大写版本,即创建第一个字符,为大写字母,其他为小写字母s_capitalize = s.capitalize()print(s_capitalize)print('s.casefold'.center(40, '-'))# 返回全小写s_casefold = s.casefold()print(s_casefold)print('s.center'.center(40, '-'))# 使字符串产生居中效果,默认填充为空格,也可指定填充单个字符s_center = s.center(20, '-')print(s_center)print('s.count'.center(40, '-'))# 返回子字符串sub的非重叠出现次数, string S [start:end]。 可选参数start和end为切片表示法。即在切片范围内统计指定字符串的出现次数,如果不指定即在整个字符串内统计指定字符串出现次数s_count = s.count('es', 0, 7)print(s_count)print('s.encode'.center(40, '-'))# 字符串编码转换,默认为`encoding='utf-8'`s_encode = s.encode('utf-8', 'strict')print(s_encode)print('s.endswith'.center(40, '-'))# 测试字符串结尾是否为指定字符串,也可指定字符串结尾s_endswith = s.endswith('st', 1, 8)print(s_endswith)print('s.expandtabs'.center(40, '-'))# 将字符串中的tab制表符转换为空格,一个字表符默认为8个空格s_tab = 'ss\tr's_tab_expandtabs = s_tab.expandtabs(tabsize=8)print(s_tab_expandtabs)print('s.find'.center(40, '-'))# 在字符串中查找指定字符,找到则返回最小的索引,没有则返回-1,也可以加上分片指定字符串中索引范围s_find = s.find('test', 0, 8)print(s_find)print('s.format'.center(40, '-'))# 字符串格式化的一种方法,将需要格式化的地方填充`{}`s_format = '{} string in python'.format('Powerful')print(s_format)print('s.format_map'.center(40, '-'))# 字符串格式化的一种方法,接收的参数为字典,通过映射的方式格式化a = { 'x': 'Powerful'}s_format_map = '{x} string in python'.format_map(a)print(s_format_map)print('s.index'.center(40, '-'))# 寻找字符串中出现指定的第一个索引s_index = s.index('test')print(s_index)print('s.isalnum'.center(40, '-'))# 字符串中是否全部为数字字符,并至少有一个字符,若是则返回Ttue,否则返回Falses_num = '233's_num_isalnum = s_num.isalnum()print(s_num_isalnum)print('s.isalpha'.center(40, '-'))# 字符串中是否全部为英文字母,并至少有一个字符,若是则返回True,否则返回Falses_alpha = 'will's_alpha_isalpha = s_alpha.isalpha()print(s_alpha_isalpha)print('s.isdecimal'.center(40, '-'))# 判断字符串是否只有十进制字符,若是则返回True,否则返回Falses_deci = '333's_deci_isdecimal = s_deci.isdecimal()print(s_deci_isdecimal)print('s.isdigit'.center(40, '-'))# 判断字符串中是否全部为数字,并至少有一个字符,若是则返回True,否则返回Falses_digi = '123456's_digi_isdigit = s_digi.isdigit()print(s_digi_isdigit)print('s.isidentifier'.center(40, '-'))# 判断字符串是否为有效定义s_iden = ''s_iden_isidentifier = s_iden.isidentifier()print(s_iden_isidentifier)print('s.islower'.center(40, '-'))# 判断字符串是否全部为小写字符,若是则返回True,否则返回Falses_islower = s.islower()print(s_islower)print('s.isnumeric'.center(40, '-'))# 判断字符串中是否全部为数字,若是则返回True,否则返回Falses_nume = '123456's_nume_isnumeric = s_nume.isnumeric()print(s_nume)print('s.isprintable'.center(40, '-'))# 判断字符串中所有字符是否都是可打印字符(in repr())或字符串为空。s_prin = ''s_prin_isprintable = s_prin.isprintable()print(s_prin_isprintable)print('s.isspace'.center(40, '-'))# 判断字符串是否全部为空格,若是则返回True,否则返回Falses_spac = ' 's_spac_isspace = s_spac.isspace()print(s_spac_isspace)print('s.istitle'.center(40, '-'))# 判断字符串是否为一个标题字符串,即每个单词首写字母都为大写,若是则返回True,否则返回Falses_titl = 'String In Python.'s_titl_istitle = s_titl.istitle()print(s_titl_istitle)print('s.isupper'.center(40, '-'))# 判断字符串中是否全部为大写字符,若是则返回True,否则返回Falses_uppe = 'STR_TEST's_uppe_isupper = s_uppe.isupper()print(s_uppe_isupper)print('s.join'.center(40, '-'))# 将序列中的元素以指定的字符拼接成新的字符串strs = ['Powerful', 'strng', 'in', 'python']strs_join = ' '.join(strs) # 指定' '空格拼接列表中的元素print(strs_join)print('s.ljust'.center(40, '-'))# 使字符串左对齐,当len(s)a,t->b,e->c),`outtab`用于替换`intab`出现在需要处理的字符串中,第三个参数为需要删除的字符intab = "st"outtab = "#$"deltab = '_'s_maketrans = s.maketrans(intab, outtab, deltab)print(s_maketrans)print('s.partition'.center(40, '-'))# 搜索指定分隔符,并返回第一个分隔符之前的部分,第一个分隔符本身,和第一个分隔符之后的部分s_part = 'I like Python's_part_partition = s_part.partition(' ')print(s_part_partition)print('s.replace'.center(40, '-'))# 字符串替换,`replace(self, old, new, count=None)`,接受参数依次是需要替换的字符串,替换后的字符串,和可选参数替换次数,默认为全部替换s_replace = s.replace('t', 'T', 1)print(s_replace)print('s.rfind'.center(40, '-'))# 在字符串中查找指定字符,找到则返回最大的索引,没有则返回-1,也可以加上分片指定字符串中索引范围s_rfind = s.rfind('t', 0, 8)print(s_rfind)print('s.rindex'.center(40, '-'))# 在字符串中查找指定字符,找到则返回最大的索引,没有则返回-1,也可以加上分片指定字符串中索引范围s_rindex = s.rindex('t', 0, 8)print(s_rindex)print('s.rjust'.center(40, '-'))# 使字符串右对齐,当len(s)