Python记录——字符串的常用方法
1. 编码/解码( encode()/decode() )
encode() 是将 Python 内部默认的编码 unicode编码 转换成其他编码格式,decode()是将其他编码格式转换成 unicode编码,列如:
strs = '一段话' print(strs.encode()) #如果没有指定编码格式,则默认编码为utf-8,表示将unicode编码的字符串strs转换成utf-8编码 print(strs.encode('gbk')) #表示将unicode编码的字符串strs转换成gbk编码 print(strs.encode('gbk').decode('gbk')) #表示将unicode编码的字符串strs转换成gbk编码,再将gbk编码的字符串strs转换成unicode编码
结果为:
b'\xe4\xb8\x80\xe6\xae\xb5\xe8\xaf\x9d' b'\xd2\xbb\xb6\xce\xbb\xb0' 一段话
2. index()、rindex()、count()
index() 用来查找子字符串在字符串中最先出现的位置,rindex() 用来查找子字符串在字符串中最后出现的位置,count()用来统计子字符串在字符串中出现的次数,列如:
strs = '吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮。' print(strs.index('萄')) print(strs.rindex('萄')) print(strs.count('萄'))
结果为:
2 16 4
3. replace()
replace() 用来替换字符串中的某些字符,如果指定第三个参数max,则替换不超过 max 次,列如:
strs = '吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮。' print(strs.replace('葡萄','苹果')) print(strs.replace('葡萄','苹果',2))
结果为:
吃苹果不吐苹果皮,不吃苹果倒吐苹果皮。
吃苹果不吐苹果皮,不吃葡萄倒吐葡萄皮。
4. maketrans() 、translate()
maketrans() 的作用是创建一个映射表,里面的元素一一对应,再用 translate() 来将其作用到要替换的字符串上,根据映射表里的一一替换,例如:
table = ''.maketrans('0123456789','零一二三四五六七八九') print('Tel:836412'.translate(table))
结果为:
Tel:八三六四一二
5. ljust()、rjust()、center()
ljust()、rjust()、center() 这三个函数都是对字符串进行排版,ljust() 是指定字符串具体的长度,向左对其,不足长度的默认用空格填充,也可指定用其他字符填充,rjust()、center() 则对应的是向右对齐和居中对齐,例如:
strs = '葡萄' print(strs.ljust(20)+'/') #用/结尾来观察20的长度 print(strs.rjust(20,'*')+'/') print(strs.center(20,'=')+'/')
结果为:
葡萄 / ******************葡萄/ =========葡萄=========/
6. split()、rsplit()、join()
split() 表示从左往右用指定字符对字符串进行分割,默认为空格,还可指定最大分割次数,rsplit()表示从右往左进行分割,返回字符串列表。join() 用于将列表等序列中的元素以指定的字符连接生成一个新的字符串,不指定连接符时,直接把序列全部连接到一起。例如:
strs = '吃 葡萄 不吐 葡萄皮 不吃 葡萄 倒吐 葡萄皮。' print(strs.split()) print(strs.split(maxsplit=1)) print(strs.rsplit(maxsplit=1)) print('1,2,3,4'.split(',')) print(','.join(['1','2','3','4'])) print(''.join(['1','2','3','4']))
结果为:
['吃', '葡萄', '不吐', '葡萄皮', '不吃', '葡萄', '倒吐', '葡萄皮。'] ['吃', '葡萄 不吐 葡萄皮 不吃 葡萄 倒吐 葡萄皮。'] ['吃 葡萄 不吐 葡萄皮 不吃 葡萄 倒吐', '葡萄皮。'] ['1', '2', '3', '4'] 1,2,3,4 1234
7. lower()、upper()、capitalize()、title()、swapcase()
lower() 的作用是将字符串中所有的大写字符转换为小写;upper() 的作用是将字符串中所有的小写字符转换为大写;capitalize() 的作用是将字符串的第一个字母变成大写,其他字母变小写;title() 的作用为返回"标题化"的字符串,将所有单词变成都是以大写开始,其余字母均为小写;swapcase() 的作用为对字符串的大小写字母进行转换,例如:
strs = 'My English is very poor.' print(strs.lower()) print(strs.upper()) print(strs.capitalize()) print(strs.title()) print(strs.swapcase())
结果为:
my english is very poor. MY ENGLISH IS VERY POOR. My english is very poor. My English Is Very Poor. mY eNGLISH IS VERY POOR.
8. startswith()、endswith()
startswith() 的作用是检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False,如果要指定多个,则要放到一个元组中;endswith() 的作用则是检查字符串是否是以指定子字符串结尾,例如:
strs = 'My English is very poor.' print(strs.startswith('My')) print(strs.startswith('my')) print(strs.endswith(('.','?',',')))
结果为:
True
False
True
9. strip()、rstrip()、lstrip()
strip() 用来删除字符串两端的指定字符,如果未指定则默认删除空格,rstrip()、lstrip() 的作用为分别删除字符串右边和左边的指定字符,例如:
strs = ' =====test====****** ' print(strs.strip()+'/') #用/结尾来观察右边的删除情况 print(strs.strip('=* ')+'/') print(strs.rstrip('* ')+'/') print(strs.lstrip()+'/')
结果为:
=====test====******/
test/
=====test====/
=====test====****** /