摘要
python数据类型之字符串(String),基础特性以及常用场景~
前言
这篇文章主要介绍python在数据分析中的字符串的常用魔法,结合实例形式总结字符串常用魔法的概念、功能、使用方法以及相关注意事项。
常用方法
join
字符串拼接:将字符串中的每一个元素按照指定的分隔符进行拼接
1 | test = '你是风儿我是沙' |
字符串拼接拓展:
- 连接少量字符串时,可以使用 + 号操作符 或者 f-string
- 连接大量字符串时,推荐使用 join 和 f-string
find
子序列查找:根据传入的参数寻找子序列,找到第一个后,获取其位置
参数:sub 指定要查找的子序列
start和end 指定寻找的区间
1 | test = 'hello world' |
通过上面的实例及输出,可以发现:
- 在找到第一个符合传入的参数sub后,停止查找并获取sub在字符串中所在的位置(或者说下标)
- 通过输出v和v1,得到的位置(下标)是在整个字符串中的位置,而当返回为-1时,则为传入的指定区间的末尾,并非整个字符串的末尾
split与rsplit
字符串分割:以传入参数为分割符,默认将字符串全部分割
split:默认从左往右进行分割;rsplit:指定从右往左进行分割
参数:sep 指定分割符
maxsplit 指定分割次数
1 | test = 'hello world' |
通过输出对比,不难发现split需要注意的地方有:
- 分割时,传入参数的匹配可视为贪婪匹配,如实例中v的输出为连续的 l 分割符视为一个整体进行前后分割
- 结果输出并不会输出分割符
- 分割次数若大于字符串中含有的分割符个数,不会报错,仅输出为最大分割次数所得到的结果
关于字符串分割拓展:
- partition:以参数为分割符,且在拿到第一个参数时,将字符串分割成3份
- rpartition:以参数为分割符,由右向左识别且在拿到第一个参数时,将字符串分割成3份
- splitlines:只能根据换行符进行分割,传入的参数为True和False,结果为是否保留换行符显示
replace
替换:字符串中的指定子序列与传入参数进行替换
参数:old 指定被替换的子序列
new 传入替换的参数
count 替换个数(次数),默认为全部替换
1 | test = 'hello world' |
字符串替换的另一种方法
maketrans定义对应关系,translate进行替换
1 | s = str.maketrans('aeiou','12345') |
strip
移除指定的字符串,并优先最多匹配,默认(即不传入参数时)情况下,去除左右空白以及 \t 、\n
lstrip:指定从左往右进行匹配并移除
rstrip:指定从右往左进行匹配并移除
1 | test = 'xaxexxaleaxaae' |
strip使用总结:
- 所谓优先最多匹配,指的是先传入参数为整体进行匹配,如果匹配不上再分解为单个字符或字符组合去进行匹配,如v2中传入的参数为xae,并指定从右往左进行匹配,匹配时优先顺序为 xae — xa、ae — x、a、e
- strip是指从字符串的左右两边进行匹配移除,并停止于所谓匹配优先顺序中的所有情况都匹配不上
isupper和islower
isupper:判断字符串是否全部为大写
islower:判断字符串是否全部为小写
1 | test = 'ASDDss' |
输出结果为布尔值,转换为大写用:upper;转换为小写用:lower
startswith和endswith
startswith:判断是否以传入的参数开头
endswith:判断是否以传入的参数结尾
1 | test = 'djfkjahfkja' |
输出结果为布尔值
其余方法
判断型
- isalnum:判断字符串中是否只包含字母和数字(汉字也算)
- isalpha:字符串中是否只包含字母(汉字也算)
- isdecimal、isdigit、isnumeric
字符串是否是数字,isdigit(包含一些特殊字符的数字)比isdecimal(十进制小数)牛逼点
isnumeric(包括汉字的数字也能识别)👈👈👈👈👈三者之中最牛,但使用最多是isdecimal - isidentifier
标识符:查看字符串是否由字母,数字,下划线组成,数字不能为首 - isprintable:判断字符串中是否存在不可显示的字符,例如:\t 制表符 \n 换行符
- isspace:判断是否全部是空格
- istitle:判断是否为标题,标题的定义为每个字符首字母为大写;转换为标题用:title
center、ljust、rjust
设置字符串的宽度,并使用字符填充
center将内容居中,ljust将内容放左边,rjust将内容放右边
参数:width 指定宽度
fillchar 指定填充字符
1 | test = 'hello world' |
expandtabs
断句:匹配 \t ,将字符串以6个为一组进行断句,并在匹配到 \t 的位置,不够6个时以空格补满
参数:tabsize 指定宽度
1 | s = 'hfaushfhoahsfoih\tuisagfiu\tjdsba' |
swapcase
大小写转换:与lower、upper不同之处在于,swapcase把字符串中每一个元素进行转换,而并非统一转换成大写或小写
1 | test = 'LAsjSi' |
总结
以上为数据分析中python字符串自带的一下常用方法,重温一遍并记录下来,以便查漏补缺,有哪些地方出现错误或者疑义,欢迎讨论,感谢阅读~
本文版权归作者所有,欢迎转载,转载请注明出处和链接来源。