Python记录——字符串的常用方法

银角大王 2020-03-07

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====******    /

相关推荐