Python常用对象之字符串操作手册

Python常用对象之字符串操作手册

详细介绍操作字符串的内置函数、运算符、字符串方法、特殊字符串等

常用对象使用标记
因为字符串是不可变类型, 所以对字符串的所有修改都不会修改原字符串, 而是返回一个新的副本

内置函数

函数说明原型
len获取容器元素数, 在字符串中为获取字符串长度len(obj) -> int
sorted排序, 返回一个排序后的新列表sorted(iterable, key=None, reverse=False) -> List
reversed反转, 返回反向迭代器reversed(sequence) -> Iterator
int, float, list, tuple, …类型转换, 转换失败将抛出ValueError异常
示例: len、sorted、reversed
# >>> 表示交互输入
# <<< 表示交互输出
>>> s = 'hello world'  # 定义一个字符串s

>>> len(s)  # 获取字符串长度
<<< 11  # 字符串长度

>>> sorted(s)  # 字符串排序, 默认按字符编码升序排序
<<< [' ', 'd', 'e', 'h', 'l', 'l', 'l', 'o', 'o', 'r', 'w']  # 排序结果
>>> ''.join(sorted(s))  # 排序并转为字符串, 此方法后面会讲到
<<< ' dehllloorw'  # 转换结果

>>> reversed(s)  # 反转字符串
<<< <reversed at 0x1d0c3a35dc8>  # 返回的反向迭代器对象, 可以进行for循环或者转换为list列表等
>>> ''.join(reversed(s))  # 反转并转为字符串
<<< 'dlrow olleh'  # 转换结果

运算符

运算符说明原型
+连接字符串, 返回新的字符串__add__(self, value) -> str
+=连接字符串, 将结果赋值给左表达式__iadd__(self, value) -> None
*重复字符串, 返回新的字符串__mul__(self, value) -> str
%字符串格式化, 返回格式化后的字符串__mod__(self, value) -> str
==比较字符串, 判断字符串是否相同, 返回bool值True或False__eq__(self, value) -> bool
!=比较字符串, 判断字符串是否不相同, 返回bool值True或False__ne__(self, value) -> bool
in判断字符串是否包含子字符串, 返回bool值True或False__contains__(self, value) -> bool
not in判断字符串是否不包含子字符串, 返回bool值True或False
>, < …不常用
示例: +、+=、*、%、==、in
# >>> 表示交互输入
# <<< 表示交互输出
>>> s = 'hello'  # 定义一个字符串s

>>> s + 'world'  # 连接字符串, 返回一个新字符串
<<< 'helloworld'  # 连接结果, 返回值
>>> s  # 查看s
<<< 'hello'  # 字符串本身不会改变

>>> s += 'world'  # 连接字符串, 将结果赋值给s
>>> s  # 查看s
<<< 'helloworld'  # 现在s是一个新的字符串

>>> '*' * 5  # 将'*'重复5次, 返回新的字符串
<<< '*****'  # 返回值

>>> s = '%d+%d=%d'  # 定义一个格式化字符串
>>> s % (1, 2, 1+2)  # 格式化字符串, 返回格式化后的字符串
<<< '1+2=3'  # 格式化结果, 返回值

>>> s = 'abc'
>>> s == 'abc'  # 比较字符串, 返回比较结果
<<< True
>>> s == 'cba'
<<< False

>>> s = 'hello world'
>>> 'world' in s  # 判断字符串s是否包含'world'
<<< True

字符串方法: Python所有字符串方法详解

原型中[]内的参数表示可选参数
注意: 空字符串不作为任何判断依据, 空字符串用作判断永远返回False

分类方法说明原型
统计count统计子字符串出现次数

统计子字符串sub在字符串Sstart-end索引范围内出现的次数
S.count(sub[, start[, end]]) -> int
判断startswith判断开头

判断字符串S是否以prefix开头
S.startswith(prefix[, start[, end]]) -> bool
endswith判断结尾

判断字符串S是否以suffix结尾
S.endswith(suffix[, start[, end]]) -> bool
islower判断是否为小写字符串

注意: 仅英文字母作为判断依据, 特殊字符与中文等不作为判断依据
S.islower() -> bool
isupper判断是否为大写字符串

注意: 仅英文字母作为判断依据, 特殊字符与中文等不作为判断依据
S.isupper() -> bool
isspace判断是否为空白字符(空格, \r, \n, \t等)S.isspace() -> bool
istitle判断是否为标题字符串 (每个单词首字母大写)S.istitle() -> bool
isdecimal判断是否为十进制数 (是否能转为int)S.isdecimal() -> bool
isdigit判断是否为十进制数 (支持全角字符如: ‘10’)S.isdigit() -> bool
isnumeric判断是否为十进制数 (支持全角字符与中文字符等如: ‘十三’)S.isnumeric() -> bool
isalnum判断是否为字母或十进制整数 (整数判断标准与isnumeric相同)S.isalnum() -> bool
isalpha判断是否为字母 (中文字符也判断为字母)S.isalpha() -> bool
isprintable判断是否不包含特殊字符 (\r, \n, \t等)S.isprintable() -> bool
查找和替换find查找字符串

在字符串Sstart-end索引范围内查找子字符串sub
找到返回子字符串sub的起始索引, 未找到返回-1
S.find(sub[, start[, end]]) -> int
rfind从右侧开始查找字符串S.rfind(sub[, start[, end]]) -> int
index查找字符串 未找到抛出ValueError异常S.index(sub[, start[, end]]) -> int
rfind从右侧开始查找字符串 未找到抛出ValueError异常S.rindex(sub[, start[, end]]) -> int
replace替换字符串

在字符串S中将old子字符串替换为new字符串, 替换count
默认全部替换, 返回替换后的字符串
S.replace(old, new, count=-1)
expandtabs替换制表符

将字符串S中的所有制表符(\t)替换为tabsize个空格
返回替换后的字符串
S.expandtabs(tabsize=8) -> str
format字符串格式化

返回格式化后的字符串
示例: ‘{} + {} = {}’.format(1, 2, 1+2) # 顺序格式化
示例: ‘hello {name}’.format(name=‘Xiaoming’) # 关键字格式化
S.format(*args, **kwargs) -> str
format_map字符串格式化

类似format关键字格式化, 参数使用字典
S.format_map(mapping) -> str
大小写转换lower转为小写字符串

返回转换后的字符串
S.lower() -> str
upper转为大写字符串

返回转换后的字符串
S.upper() -> str
swapcase反转大小写

将字符串S中的大小转为小写, 小写转为大写, 返回转换后的字符串
S.swapcase()
title转为标题字符串 (所有单词首字母大写)S.title() -> str
capitalize将字符串首个单词的首个字母转为大写S.capitalize() -> str
casefold转为小写字符串

国内环境用不到, 用lower即可
S.casefold() -> str
文本对齐center居中对齐

使用fillchar在字符串S前后填充到width长度
返回填充后的字符串
示例: ‘abc’.center(9, ‘=’) # 结果 ‘===abc===’
S.center(self, width, fillchar=’ ') -> str
ljust左对齐 (在右侧填充)

示例: ‘abc’.ljust(5, ‘=’) # 结果 ‘abc==’
S.ljust(self, width, fillchar=’ ') -> str
rjust右对齐 (在左侧填充)S.rjust(self, width, fillchar=’ ') -> str
去重空白(指定)字符strip去除首尾空白字符

将字符串S首尾所有chars字符去除 (默认为所有空白字符)
S.strip(chars=None) -> str
lstrip去除首部空白字符S.lstrip(chars=None) -> str
rstrip去除尾部空白字符S.rstrip(chars=None) -> str
拆分和连接join连接字符串

使用字符串S来连接字符串可迭代对象iterable (列表等)
示例: ‘+’.join([‘1’, ‘2’, ‘3’]) # 结果 ‘1+2+3’
S.join(iterable) -> str
split分割字符串

使用sep作为分隔符分割字符串S分割maxsplit
sep默认为所有空白字符
maxsplit默认为全部分割

返回分割后的字符串列表
S.split(sep=None, maxsplit=-1) -> List
rsplit分割字符串 从右边计算分割次数S.rsplit(sep=None, maxsplit=-1) -> List
splitlines按行分割字符串

keepends指定分割后是否保留分隔符
返回分割后的字符串列表
S.splitlines(keepends=False)
partition分割字符串

使用字符串sep作为分隔符将字符串S分割为三部分
第一部分: 分隔符之前的字符串
第二部分: 分隔符
第三部分: 分隔符之后的字符串
返回分割后的元组字符串
S.partition(sep) -> Tuple
rpartition分割字符串 从右侧开始寻找sepS.rpartition(sep) -> Tuple
编码转换encoding字符串编码

使用encode编码格式对字符串进行编码, 返回编码后的字节数组bytes对象

解码使用bytes对象的decode方法
S.encode(encoding=‘utf-8’, errors=‘strict’) -> bytes
其它方法str.maketrans创建字符编码映射

x中的字符编码映射为y中的字符编码, 如果指定了zx中与z相同的字符将映射为None
返回映射后的字典

示例: str.maketrans(‘abc@’, '123 ', ‘@’) # 结果 {97: 49, 98: 50, 99: 51, 64: None}
str.maketrans(x, y=None, z=None) -> Dict
translate编码翻译

使用str.maketrans创建的编码字典翻译字符串S
返回翻译后的字符串
示例:‘abc’.translate(str.maketrans(‘abc’, ‘123’)) # 结果 ‘123’
S.translate(table) -> str
zfill用0填充字符串

将字符串S前面填充0, 返回width长度的字符串
S.zfill(width) -> str

特殊字符串: 原始字符串、二进制字符串、格式化字符串

特殊字符串说明
r’C\1.txt’原始字符串, 原始字符串中的特殊字符不会转义
b’abc’二进制字符串, 只能为ansi码字符
f’hello {name}’格式化字符串, 执行时自动使用同名变量填充

如果您觉得此文章对您有所帮助, 请帮我点赞哦~



  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值