Python 的内置字符串方法

字符串处理是非常常用的技能,但 Python 内置字符串方法太多,常常遗忘,为了便于快速参考,特地依据 Python 3.5.1 给每个内置方法写了示例并进行了归类,便于大家索引。
PS: 可以点击概览内的绿色标题进入相应分类或者通过右侧边栏文章目录快速索引相应方法。

概览

字符串大小写转换

  • str.capitalize()
  • str.lower()
  • str.casefold()
  • str.swapcase()
  • str.title()
  • str.upper()

字符串格式输出

  • str.center(width[, fillchar])
  • str.ljust(width[, fillchar]); str.rjust(width[, fillchar])
  • str.zfill(width)
  • str.expandtabs(tabsize=8)
  • str.format(^args, ^^kwargs)
  • str.format_map(mapping)

字符串搜索定位与替换

  • str.count(sub[, start[, end]])
  • str.find(sub[, start[, end]]); str.rfind(sub[, start[, end]])
  • str.index(sub[, start[, end]]); str.rindex(sub[, start[, end]])
  • str.replace(old, new[, count])
  • str.lstrip([chars]); str.rstrip([chars]); str.strip([chars])
  • static str.maketrans(x[, y[, z]]); str.translate(table)

字符串的联合与分割

  • str.join(iterable)
  • str.partition(sep); str.rpartition(sep)
  • str.split(sep=None, maxsplit=-1); str.rsplit(sep=None, maxsplit=-1)
  • str.splitlines([keepends])

字符串条件判断

  • str.endswith(suffix[, start[, end]]); str.startswith(prefix[, start[, end]])
  • str.isalnum()
  • str.isalpha()
  • str.isdecimal(); str.isdigit(); str.isnumeric()
  • str.isidentifier()
  • str.islower()
  • str.isprintable()
  • str.isspace()
  • str.istitle()
  • str.isupper()

字符串编码

  • str.encode(encoding=”utf-8″, errors=”strict”)

大小写转换

str.capitalize()

将首字母转换成大写,需要注意的是如果首字没有大写形式,则返回原字符串。

str.lower()

将字符串转换成小写,其仅对 ASCII 编码的字母有效。

str.casefold()

将字符串转换成小写,Unicode 编码中凡是有对应的小写形式的,都会转换。

str.swapcase()

对字符串字母的大小写进行反转。

但需要注意的是 s.swapcase().swapcase() == s 不一定为真:

这里 'Μ'(是 mu 不是 M) 的小写正好与 'μ' 的写法一致。

str.title()

将字符串中每个“单词”首字母大写。其判断“单词”的依据则是基于空格和标点,所以应对英文撇好所有格或一些英文大写的简写时,会出错。

str.upper()

将字符串所有字母变为大写,会自动忽略不可转成大写的字符。

需要注意的是 s.upper().isupper() 不一定为 True

字符串格式输出

str.center(width[, fillchar])

将字符串按照给定的宽度居中显示,可以给定特定的字符填充多余的长度,如果指定的长度小于字符串长度,则返回原字符串。

str.ljust(width[, fillchar]); str.rjust(width[, fillchar])

返回指定长度的字符串,字符串内容居左(右)如果长度小于字符串长度,则返回原始字符串,默认填充为 ASCII 空格,可指定填充的字符串。

str.zfill(width)

用 ‘0’ 填充字符串,并返回指定宽度的字符串。

str.expandtabs(tabsize=8)

用指定的空格替代横向制表符,使得相邻字符串之间的间距保持在指定的空格数以内。

str.format(^args, ^^kwargs)

格式化字符串的语法比较繁多,官方文档已经有比较详细的 examples,这里就不写例子了,想了解的童鞋可以直接戳这里 Format examples.

str.format_map(mapping)

类似 str.format(*args, **kwargs) ,不同的是 mapping 是一个字典对象。

字符串搜索定位与替换

str.count(sub[, start[, end]])

str.find(sub[, start[, end]]); str.rfind(sub[, start[, end]])

str.index(sub[, start[, end]]); str.rindex(sub[, start[, end]])

find() rfind() 类似,不同的是如果找不到,就会引发 ValueError

str.replace(old, new[, count])

str.lstrip([chars]); str.rstrip([chars]); str.strip([chars])

static str.maketrans(x[, y[, z]]); str.translate(table)

maktrans 是一个静态方法,用于生成一个对照表,以供 translate 使用。
如果 maktrans 仅一个参数,则该参数必须是一个字典,字典的 key 要么是一个 Unicode 编码(一个整数),要么是一个长度为 1 的字符串,字典的 value 则可以是任意字符串、None或者 Unicode 编码。

如果 maktrans 有两个参数,则两个参数形成映射,且两个字符串必须是长度相等;如果有第三个参数,则第三个参数也必须是字符串,该字符串将自动映射到 None

字符串的联合与分割

str.join(iterable)

用指定的字符串,连接元素为字符串的可迭代对象。

str.partition(sep); str.rpartition(sep)

str.split(sep=None, maxsplit=-1); str.rsplit(sep=None, maxsplit=-1)

str.splitlines([keepends])

字符串以行界符为分隔符拆分为列表;当 keependsTrue,拆分后保留行界符,能被识别的行界符见官方文档

字符串条件判断

str.endswith(suffix[, start[, end]]); str.startswith(prefix[, start[, end]])

str.isalnum()

字符串和数字的任意组合,即为真,简而言之:

只要 c.isalpha(), c.isdecimal(), c.isdigit(), c.isnumeric() 中任意一个为真,则 c.isalnum() 为真。

str.isalpha()

Unicode 字符数据库中作为 “Letter”(这些字符一般具有 “Lm”, “Lt”, “Lu”, “Ll”, or “Lo” 等标识,不同于 Alphabetic) 的,均为真。

str.isdecimal(); str.isdigit(); str.isnumeric()

三个方法的区别在于对 Unicode 通用标识的真值判断范围不同:

isdecimal: Nd,
isdigit: No, Nd,
isnumeric: No, Nd, Nl

digitdecimal 的区别在于有些数值字符串,是 digit 却非 decimal ,具体戳 这里

str.isidentifier()

判断字符串是否可为合法的标识符。

str.islower()

str.isprintable()

判断字符串的所有字符都是可打印字符或字符串为空。Unicode 字符集中 “Other” “Separator” 类别的字符为不可打印的字符(但不包括 ASCII 的空格(0x20))。

str.isspace()

判断字符串中是否至少有一个字符,并且所有字符都是空白字符。

str.istitle()

判断字符串中的字符是否是首字母大写,其会忽视非字母字符。

str.isupper()

字符串编码

str.encode(encoding=”utf-8″, errors=”strict”)

参考资料

Python 内置类型字符串方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值