Python字符串的常用方法
Python中凡是用引号引起来的数据都称之为字符串类型
- 组成字符串的每个元素称之为字符,将这些字符连接起来,再用引号包含起来的就是字符串
字符串的操作:
-
索引:
- 组成字符串的字符从左至右,依次排列,按顺序编号为:0,1,2,3。。。
- 从右至左依次为:-1,-2,-3。。。
-
切片:
-
通过索引截取字符串的一段,形成新的字符串
str2 = str1[起始编号:结束编号:步长] -
起始编号和结束编号若为0则可省略不写
注:切片顾头不顾尾
-
-
步长:指定切片截取的跨度
- 如为2则表示隔一个字符取值
- 若要使取值反向排列,需使用反向步长,如-2
#例:
s = '123456'
# 通过对s切片形成新的字符串s1,s1 = '654'
s1 = s[:-4:-1]
upper():
- 将字母都替换为大写,中文和数字不变
lower():
- 将字母都替换为小写
- upper()不会对源字符串产生操作,都是产生一个新的字符串
#例:
s = '1a2b3C4D'
s1 = s.upper()
print(s1)
# 或者直接打印
print(s.upper())
print(s.lower())
startswith():
-
判断是否以某字符串开头
endswith():
-
判断是否以某字符串结尾
可与切片配合使用
#例:
s = 'liBai'
print(s.startswith('l')) #返回值True
print(s.startswith('liBAI')) #返回值True
replace():
- 替换指定字符串
- 语法:replace(old,new,count)
#例:
msg = 'libai 是位诗人,libai很有才华,libai是诗仙'
msg1 = msg.replace('libai',"胖虎") #默认全部替换
msg2 = msg.replace('libai',"胖虎",2) #指定替换次数
print(msg1)
# 胖虎 是位诗人,胖虎很有才华,胖虎是诗仙
print(msg2)
# 胖虎 是位诗人,胖虎很有才华,libai是诗仙
strip():
-
去除两端指定的字符串,默认空白字符包括:\t,\n,空格
#例:去除两端空白 s = ' libai\t胖虎\t' s1 = s.strip() print(s1) # libai 胖虎
# 去除指定的字符串
s = '李李李李李白李苏轼轼轼轼'
s1 = s.strip('李轼')
print(s1)
#输出值为'白李苏',strip只能删除两端的字符,不能删除中间部分的字符
split():
-
分隔,拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表,默认以空格分隔
-
n个分隔符会返回n+1个列表元素。
-
分隔符在字符串开头或结尾,返回的列表会产生空元素
s = '李白 苏轼 杜甫' print(s.split()) # 默认以空格分隔 s = '.李白. 苏轼.杜甫' print(s.split('.')) #也可以指定分隔符 # ['','李白','苏轼','杜甫']
join():
- 连接字符串数组。将字符串、元组和列表中的元素以指定的分隔符连接生成一个新的字符串
- 语法:'分隔符'.join(要连接的元素、字符串、元组、字典)
s = ['','李白','苏轼','杜甫']
print('.'.join(s))
# ' .李白.苏轼.杜甫'
count():
-
统计字符串里某个字符出现的次数。可选参数在字符串搜索的开始与结束位置。
-
语法:str.count('char',start,end)或str.count('char') --> int 返回整数
s = '李李李李李白苏轼轼轼轼' print(s.count('李')) # 5
format():
- 格式化输出
is系列:
-
isalnum():判断字符串由字母或数字组成
-
isalpha():判断字符串只由字母组成
# 中文汉字会被isalpha判断为True,可以转换编码方式: s = '汉字' s.encode( 'UTF-8' ).isalpha() # False
-
isdecimal():判断字符串只由十进制数字组成
-
isdecimal():判断字符串只由十进制数字组成
len():
- 获取可迭代对象的元素总个数
成员运算:
- 判断字符是否在字符串中
- in 若在,返回True
- not in 若不在,返回True
例:s = '李白苏轼杜甫'
print('白苏' in s)
# True
print('李苏' nor in s)
#字符串‘李苏’为一个整体,并不包含在s当中,所以返回为True