字符串相关函数和相关方法
一、相关函数: len 、str 、eval
-
str( 数据 ) —— 将指定数据转换成字符串(任何类型的数据都可以转换成字符串;转的时候是直接在数据的打印值外面加引号)
-
eval(字符串) —— 计算字符串表达式的结果
# 将字符串转换成列表 str1 = '[10, 20, 30]' print(eval(str1)) # [10, 20, 30]
二、相关方法:
- join
字符串.join(序列) —— 将序列中的元素用指定字符串拼接出一个字符串(序列中的元素必须是字符串)
list1= ['name','age','gender']
result = '+'.join(list1)
print(result) # 'name+gae+gender'
result1 = ''.join(list1)
print(result1) # 'nameagegender'
# 练习1:将列表list1中所有的元素用#连接成一个字符串
list1 = [100, 12.8, True, 'abc']
# '100#12.8#True#abc'
list1 = [100,12.8,True,'abc',4]
print('#'.join([str(i) for i in list1]))
# 练习2:将列表list1中所有的数字数据用#连接成一个字符串
list1 = [100, 12.8, True, 'abc', 4]
# '100#12.8#4'
result = '#'.join([str(i) for i in list1 if type(i) in (int,float)])
print(result)
-
split
字符串1.split(字符串2) —— 将字符串1中所有的字符串2作为切割点对字符串进行切割
字符串1.split(字符串2,N) —— 将字符串1中前N个字符串2作为切割点进行切割
字符串1.rsplit(字符串2,N) —— 将字符串倒数N个字符串2作为切割点进行切割
str1 = '123*abc*mn'
result = str1.split('*')
print(result) # ['123','abc','mn']
# 特殊情况
str1 = '*123*abc*mn*'
result = str1.split('*')
print(result) # ['', '123', 'abc', 'mn', '']
注意:a. 如果切割点在字符串的开头或者结尾,切完会出现空串。b. 如果切割点连续出现,切完后也会出现空串
-
replace —— 替换
字符串1.repace(字符串2,字符串3) —— 将字符串1中所有的字符串2都替换成字符串3
字符串1.repace(字符串2,字符串3,N)—— 将字符串1中前N个字符串2都替换成字符串3
# 将str1中you替换成me str1 = 'how are you? i am fine, thank you! and you?' result = str1.replace('you','me') print(result) # how are me? i am fine, thank me! and me? # 将str1中最后两个you替换成me result1 = 'me'.join(str1.rsplit('you',2)) print(result1) # how are you? i am fine, thank me! and me?
-
替换字符
str.maketrans(字符串1,字符串2) —— 创建字符串1中所有字符和字符串2中所有字符一一对映关系表
字符串.translate(字符对映表) —— 按照字符对映表的关系将字符串中的字符进行替换。
str1 = '今天是星期1,昨天是星期7,明天是星期2,最喜欢星期5,最讨厌星期1早上' table = str.maketrans('1234567','一二三四五六天') result = str1.translate(table) print(result) # 今天是星期一,昨天是星期天,明天是星期二,最喜欢星期五,最讨厌星期一早上
-
删除字符串两端的空白
字符串.strip() —— 删除字符串两边的空白
字符串.rstrip() —— 删除字符串右边的空白
字符串.lstrip() —— 删除字符串左边的空白
str1 = '///name//' print(str1.strip('/')) # name
-
count —— 统计个数
字符串1.count(字符串2) —— 统计字符串1中字符串2出现的次数09
字符串格式化
-
格式字符串:包含样式占位符的字符串 %(数据1,数据2,数据3,…)
注意: ()中的数据必须和字符串中占位符一一对应
-
格式占位符
%s —— 字符串占位符 ,可以对应任何类型的数据
%d —— 整数占位符,可以对应任何数字
%f —— 浮点数占位符,可以对应任何数字(默认保留6位小数)
%.Nf —— 浮点占位符,可以对应任何数字,让数字保留N位小数
建议 : 如果不控制小数位数可以全部使用%s占位
xxx,性别:x,年龄:xx,月薪:xxxx.00元! '%s,性别:%s,年龄:%d,月薪:%f元!'%(name,gender,age,money)
-
f-string
1)基本用法
语法:f’{表达式}’ —— 将{}中表达式的值作为字符串内容拼接到字符串中
message = f'{name},性别:{gender},年龄:{age},月薪:{money}元!'
2)加参数
语法:f’{提供数据的表达式:参数}'
a. 控制小数位数的参数 —— f’{表达式:.Nf}’ 保留N位小数
b. 金额数值显示加逗号
money = 180000 result = f'金额:{money:,}元' print(result) # 金额:1,800,000.00元
c. 显示百分比
x = 0.34 result = f'增长率:{x:%}' # 增长率:34.000000% result = f'增长率:{x:.1%}' # 增长率:34.0% print(result)
d. 控制长度
f’{表达式:字符>N}’ 、f’{表达式:字符<N}’
num = 8 result = f'py2201{num:0>3}' # py2201008 print(result) result1 = f'py2201{num:0<3}' # py2201800 print(result1)