文章目录
- 前言
- 1. count()
- 2. encode()
- 3. decode()
- 4. format()
- 5. find()
- 6. index()
- 7. endswith()
- 8. startswith()
- 9. join()
- 10. split()
- 11. strip()
- 12. replace()
- 13. zfill()
- 14. lower()
- 15. upper()
- 16. capitalize()
- 17. isalnum()
- 18. isalpha()
- 19. isdigit()
- 20. islower()
- 21. isupper()
- 22. isspace()
- 23. istitle()
- 24. title()
- 25. swapcase()
- 26. splitlines()
- 27. maketrans()
- 28. translate()
- 29. center()
- 30. ljust()
- 31. rjust()
- 32. lstrip()
- 33. rstrip()
- 34. rfind()
- 35. rindex()
- 36. rsplit()
- 结束语
前言
字符串通常被称为串,前面博客也提到过,它是Python的一种基本数据类型,所以在本篇博文不再对字符串做过的叙述,而是整理一下Python中内置的对字符串的操作方法。
1. count()
统计子字符串
在
范围内出现的次数。可选参数
与
是切片表示法。
str_x = 'abcdbbefg'
print(str_x.count('bb'))
>>>>1
2. encode()
对字符串按指定编码进行编码。 默认编码为
。可以通过
来设置不同的错误处理方案,
的默认值为
,表示编码错误会引发
,其他可用的值为
,
。
str_x = 'abcdbbefg'
print(str_x.encode())
>>>>b'abcdbbefg'
3. decode()
对字符串按指定编码进行解码。正好与
是相反的操作。
str_x = 'abcdbbefg'
print(str_x.encode(encoding='utf-8'))
print(str_x.encode(encoding='utf-8').decode(encoding='utf-8'))
>>>>b'abcdbbefg'
>>>>abcdbbefg
4. format()
执行字符串格式化操作。
格式:
。其中,格式控制标记用来控制参数显示时的格式,格式内容如下:
: | <填充> | <对齐> | <宽度> | < , > | < .精度 > | <类型> |
---|---|---|---|---|---|---|
引导符号 | 用于填充的单个字符,默认为空格 | < 左对齐 > 右对齐 ^ 居中 | 输出宽度 | 数字的千位分隔符,适用于整数和浮点数 | 浮点数小数部分的精度或字符串的最大输出长度 | 整数类型,b,c,d,o,x,X,浮点数类型,e,E,f,% |
print("{:*^15}".format('abcdefg'))
print("{:,}".format(1000000))
print("{:.2f}".format(3.1415926))
print("{:.2%}".format(3.1415926))
print("{:.2e}".format(1000000))
print("{:b}".format(5))
>>>>****abcdefg****
>>>>1,000,000
>>>>3.14
>>>>314.16%
>>>>1.00e+06
>>>>101
* 表示任何多个无名参数,它是一个 ;** 表示关键字参数,它是一个 。如果同时使用* 和** 时,* 参数列必须要放在** 前面。
5. find()
查找子字符串
在
切片内的最小索引。如果
未被找到则返回 -1,可选参数
与
是切片表示法。
str_x = 'abcdbbefg'
print(str_x.find('b'))
>>>>1
6. index()
类似于
,但在找不到子类时会引发
。
7. endswith()
如果字符串以指定的
结尾,则返回
,否则返回
。
也可以为由多个供查找的后缀构成的元组。可选参数
与
是切片表示法。
str_x = 'abcdbbefg'
print(str_x.endswith(('a', 'g')))
>>>>True
8. startswith()
如果字符串以指定的
开始,则返回
,否则返回
。用法同
。
9. join()
将序列中的元素以指定的字符连接,生成一个新的字符串。
str_list = ['abd', 'cca', 'befg']
print(' '.join(str_list))
>>>>abd cca befg
10. split()
以
(默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等)进行分割字符串,返回分割后的列表,
是分割次数,如果未指定,则进行所有可能的拆分。
str_x = 'this is a pig'
print(str_x.split())
print(str_x.split(' '))
print(str_x.split(' ', maxsplit=1))
>>>>['this', 'is', 'a', 'pig']
>>>>['this', 'is', 'a', 'pig']
>>>>['this', 'is a pig']
11. strip()
移除其中的首部和末尾字符。
参数为指定要移除字符的字符串,默认移除空格符。 实际上
参数并非指定单个前缀或后缀,而是会移除参数值的所有组合。
str_x = ' this is a pig* '
print(str_x.strip())
print(str_x.strip('*'))
print(str_x.strip('* '))
>>>>this is a pig*
>>>> this is a pig*
>>>>this is a pig
12. replace()
将所有子字符串
替换为
。 如果给出了可选参数
,则只替换前
次出现的。
str_x = 'this is a pig'
print(str_x.replace('pig', 'tiger'))
>>>>this is a tiger
13. zfill()
在字符串左边填充
使其长度变为
。 正负值前缀
的处理方式是在正负符号之后填充而非在之前。 如果
小于等于
,则返回原字符串的副本。
str_x = '999'
print(str_x.zfill(5))
>>>>00999
14. lower()
将大写的字符均转换为小写。
str_x = 'this Is A pig'
print(str_x.lower())
>>>>this is a pig
15. upper()
将小写的字符均转换为大写。
str_x = 'this Is A pig'
print(str_x.upper())
>>>>THIS IS A PIG
16. capitalize()
返回原字符串的副本,其首个字符大写,其余为小写。
str_x = 'abcdefg'
print(str_x.capitalize())
print(str_x)
>>>>Abcdefg
>>>>abcdefg
17. isalnum()
检测字符串是否只由字母或数字组成,如果是返回
,否则返回
。
str_x = 'abc9befg'
print(str_x.isalnum())
str_x = 'abc9 befg'
print(str_x.isalnum())
>>>>True
>>>>False
18. isalpha()
检测字符串是否只由字母或中文组成,如果是返回
,否则返回
。
str_x = 'abc9befg'
print(str_x.isalpha())
str_x = 'abc李befg'
print(str_x.isalpha())
>>>>False
>>>>True
19. isdigit()
检测字符串是否只由数字组成,如果是返回
,否则返回
。
str_x = 'abc9befg'
print(str_x.isdigit())
>>>>False
20. islower()
检测字符串所有字母是否都为小写,如果是返回
,否则返回
。
str_x = 'abc3456befg'
print(str_x.islower())
>>>>True
21. isupper()
检测字符串所有的字母是否都为大写,如果是返回
,否则返回
。
str_x = 'Abd Dihgj'
print(str_x.isupper())
>>>>False
22. isspace()
检测字符串是否只由空格组成,如果是返回
,否则返回
。
str_x = 'abc34 56befg'
print(str_x.isspace())
>>>>False
23. istitle()
检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写,如果是返回
,否则返回
。
str_x = 'Abd Dihgj'
print(str_x.istitle())
>>>>True
24. title()
返回原字符串的标题版本,其中每个单词第一个字母为大写,其余字母为小写。
str_x = 'this is a pig'
print(str_x.title())
>>>>This Is A Pig
25. swapcase()
将大写字母转换为小写,小写字母转换为大写。
str_x = 'this iS a Pig'
print(str_x.swapcase())
>>>>THIS Is A pIG
26. splitlines()
按照行(
\r
,
\r\n
,
\n
)分隔,返回一个包含各行作为元素的列表,如果参数
为
,不包含换行符,如果为
,则保留换行符。
27. maketrans()
用于创建字符映射的转换表,如果只有一个参数
,则
必须是字典;如果有两个参数
和
,
、
必须是长度相等的字符串;如果有三个参数
、
、
,第三个参数
必须是字符串,其字符将被映射为
,即删除该字符。
28. translate()
根据参数
给出的映射表(通过
方法转换而来)。
str_x = 'this iS a Pig'
table = str_x.maketrans('abcdefg', '1234567')
result = str_x.translate(table)
print(result)
>>>>this iS 1 Pi7
29. center()
返回长度为
的字符串,原字符串在其正中。 使用指定的
填充两边的空位(默认使用空格填充)。 如果
小于等于
则返回原字符串的副本。
30. ljust()
返回长度为
的字符串,原字符串在其中靠左对齐。 使用指定的
填充空位 (默认使用空格)。
31. rjust()
返回长度为
的字符串,原字符串在其中靠右对齐。 使用指定的
填充空位 (默认使用空格)。
str_x = 'abcdefg'
print(str_x.center(15, '*'))
print(str_x.ljust(15, '*'))
print(str_x.rjust(15, '*'))
>>>>****abcdefg****
>>>>abcdefg********
>>>>********abcdefg
32. lstrip()
删除字符串左边的空格或指定字符。参数同
。
33. rstrip()
删除字符串右边的空格或指定字符。参数同
。
34. rfind()
从右边开始查找,参数同
。
35. rindex()
从右边开始查找,参数同
。
36. rsplit()
从右边开始分割,参数同
。
更多方法请参考官方文档。
结束语
根据平时使用的情况,做一个简单小结:平时做爬虫,不同的文本需要进行不同的编/解码,常用 和 方法,如果涉及到加/解密还会用到其他函数库,这些以后在Python爬虫专栏里面说;对字符进行格式化输出、分割、替换字符等等,常用 、 、 等;将列表转换成字符串,常用 ;对文本进行预处理,删除换行符时,常用 ;给文件统一按序号命名,常用 ;其他对字符串的处理,比如匹配,常用的是正则表达式,即 库。