Python的字符串方法总结

2021-03-15 00:31 阅读:2767
字符串的操作方法
  • 继承通用序列的操作
  • str.count(sub[, index1[, index2]])
    • str.count(sub) 返回子字符串sub在str中出现的次数
    • str.count(sub, index1) 返回子字符串sub在str中从下标index1开始到尾部出现的次数
    • str.count(sub, index1, index2)返回子字符串sub在str中从下标index1开始到下标index2-1结束的切片中出现的次数
    • index数值的正负、大小等情况,按照下标通用规则处理
  • str.encode(encoding='utf-8', error='strict')返回原字符串编码为字节串对象的版本。 默认编码为 'utf-8', error默认不检查
  • str.endswith(suffix[, index1[, index2]])
    • str.endswith(suffix) 如果字符串以指定的 suffix 结束返回 True,否则返回 False
    • str.endswith(suffix, index1) 查找范围为str中下标index1到尾部的切片
    • str.endswith(suffix, index1, index2)查找范围为下标index1到下标index2-1的切片
    • index数值的正负、大小等情况,按照下标通用规则处理
  • str.find(sub[, int1[, int2]]) 返回子字符串sub在str或指定切片中的最小下标,如果未找到,返回-1
  • str.rfind(sub[, start[, end]]) 返回子字符串sub在str或指定切片中的最大下标如果未找到,返回 -1
  • str.index(sub[, start[, end]]) 类似于str.find(),但在找不到子类时会引发 ValueError。
  • str.rindex(sub[, start[, end]]) 类似于str.rfind(),但在找不到子类时会引发 ValueError
  • str.format(*args, **kwargs) 执行字符串格式化操作。 调用此方法的字符串可以包含字符串字面值或者以花括号 {} 括起来的替换域。
  • str.format_map(mapping) 类似于 str.format(**mapping),不同之处在于 mapping 会被直接使用而不是复制到一个 dict
  • str.isalnum() 如果字符串中的所有字符都是(字母或数字)且至少有一个字符,返回 True , 否则返回 False 
  • str.isalpha() 如果字符串中的所有字符都是字母,并且至少有一个字符,返回 True ,否则返回 False 
  • str.isascii() 如果字符串为或字符串中的所有字符都是 ASCII ,返回 True ,否则返回 False 。ASCII 字符的码点范围是 U+0000-U+007F 。
  • str.isidentifier()如果字符串是有效的标识符,返回 True 
  • str.isdigit() 如果字符串中的所有字符都是数字,并且至少有一个字符,返回 True ,否则返回 False
  • str.isdecimal() 如果字符串中的所有字符都是十进制字符且该字符串至少有一个字符,则返回 True , 否则返回 False 。十进制字符指那些可以用来组成10进制数字的字符,例如 U+0660 ,即阿拉伯字母数字0 。 严格地讲,十进制字符是 Unicode 通用类别 "Nd" 中的一个字符。
  • str.isnumeric()如果字符串中至少有一个字符且所有字符均为数值字符则返回 True ,否则返回 False 。

isdigit(), isdecimal(), isnumeric()的区别:

isdigit()
True: Unicode数字,全角数字(双字节),罗马数字,byte数字(单字节),
False: 汉字数字
Error: 无

isdecimal()
True: Unicode数字,,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节)

isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字汉字数字
False: 无
Error: byte数字(单字节)

  • str.isprintable()如果字符串中所有字符均为可打印字符或字符串为则返回 True ,否则返回 False
  • str.isspace() 如果字符串中只有空白字符且至少有一个字符则返回 True ,否则返回 False 。
  • str.capitalize() 返回新字符串,将原字符串的首字母大写
  • str.title() 返回原字符串的标题版本,其中每个单词第一个字母为大写,其余字母为小写。但是该方法并不识别缩写以及'所有格。
  • str.istitle() 如果字符串中至少有一个字符且为标题字符串则返回 True ,例如大写字符之后只能带非大写字符而小写字符必须有大写字符打头。 否则返回 False 。
  • str.upper() 返回原字符串的副本,其中所有区分大小写的字符均转换为大写
  • str.lower() 返回原字符串的副本,其中所有区分大小写的字符均转换为小写
  • str.isupper() 如果字符串中都是大写字符则返回 True ,否则返回 False 。
  • str.islower() 如果字符串中都是小写字符则返回 True ,否则返回 False 。
  • str.casefold() 返回原字符串消除大小写的新字符串,比lower()更彻底,包括了非英语中的大小写转化
  • str.swapcase() 返回原字符串的副本,大小写互相转换
  • str.join(iterable) 返回一个由 iterable 中的字符串拼接而成的字符串。 调用该方法的字符串将作为元素之间的分隔
  • str.expandtabs(tabsize=8)
    • \t的规则是单列默认4个字符,不足在在字符后用空格填充;\t前面字符超过4个时,\t会将该列扩展为4的倍数,即将字符加空格是4的倍数
    • 顾名思义,expandtabs()是将\t的单列字符数扩展,默认扩展到8,当然可以定义tabsize为其他数值
  • str.zfill(width) 返回原字符串的副本,在左边填充 ASCII '0' 数码使其长度变为 width。 正负值前缀 ('+'/'-') 的处理方式是在正负符号 之后 填充而非在之前。 如果 width 小于等于 len(s) 则返回原字符串的副本。
  • str.center(width[, fillchar]) 返回长度为width的字符串,原字符串居中对齐。 使用指定的 fillchar 填充两边的空位(默认使用 ASCII 空格符)。 如果 width 小于等于 len(s) 则返回原字符串的副本。fillchar不能大于1个字符
  • str.ljust(width[, fillchar]) 返回长度为width的字符串,原字符串在其中靠左对齐。 使用指定的 fillchar 填充空位 (默认使用 ASCII 空格符)。 如果 width 小于等于 len(s) 则返回原字符串的副本。
  • str.rjust(width[, fillchar])右对齐,其他同上。
  • str.strip([chars]) 返回原字符串的副本,移除其中的前后导字符。 chars 参数实际上是一个可迭代的序列,从str的第一个字符开始检查,凡是出现在chars中的字符都会移除,直到出现一个不存在于chars中的字符为止。 如果参数省略或为 None,则 chars 参数默认移除空白符。
  • str.lstrip([chars]) 同上,移除其中的前导字符。
  • str.rstrip([chars]) 同上,移除其中的后导字符。
  • str.removeprefix(prefix) 返回移除此前缀的字符串副本。如果不是此前缀开头,则返回原始字符串的副本。
  • str.removesuffix(suffix) 返回移除此后缀的字符串副本。如果不是此后缀结尾,则返回原始字符串的副本。
  • str.replace(old, new[, count]) 返回字符串的副本,其中出现的所有子字符串 old 都将被替换为 new。 如果给出了可选参数 count,则只替换前 count 次出现。
  • str.rpartition(sep) 在 sep最后一次出现的位置拆分字符串,返回一个3元组,其中包含分隔符之前的部分、分隔符本身,以及分隔符之后的部分。 如果分隔符未找到,则返回的3元组中包含两个空字符串以及字符串本身。
  • str.split(sep=None, maxsplit=-1) 默认参数,相当于str.split()
    • str.split() 返回以空格分割开来的列表,连续的空格会被视为单个分隔符,如果字符串包含前后缀空格,列表并不会不包含头尾的空字符串。拆分空字符串,返回空列表[]。
    • str.split('分隔符‘) 指定了sep的情况下,则连续的分隔符不会被组合在一起而是被视为分隔空字符串,列表中该元素为空('')。分隔符可以由多个字符组成。拆分空字符串,返回单个元素为空的列表['']。
    • str.split(maxsplit = 3) maxsplit默认为-1,意指尽可能拆分。当指定了maxsplit参数时,从左开始进行拆分,列表元素最多为maxsplit+1个
    • str.split(sep='分隔符’丨maxsplit=num) 可单独指定某个参数,但是需要用关键字参数的形式
  • str.rsplit(sep=None, maxsplit=-1) 同str.split(),指定maxsplit参数时从右开始拆分
  • str.splitlines([keepends]) 返回由原字符串中各行组成的列表,在行边界的位置拆分。 结果列表中不包含行边界,除非给出了 keepends 且为真值(keepends=True)。末尾的换行不会增加结果列表中额外的元素。行边界包括:\n换行丨\r回车丨\r\n回车+换行丨\v或\x0b行制表符丨\f或\x0c换表单丨\x1c文件分隔符丨\x1d组分隔符丨\x1e记录分隔符丨\x85下一行(C1控制码)丨\u2028行分隔符丨\u2029段分隔符
  • str.translate(table) 返回原字符串的副本,其中每个字符按给定的转换表进行映射

{{commentTotal}} 条评论

{{item.nickname}}
{{item.create_date}}
{{item.content}}
- 上拉或点击加载更多 -
- 加载中 -
- 没有更多了 -
- 本文链接 -