Python字符串相关操作方法:索引,切片,count,startswith,endswith,split,join,format,strip,is系列,find,index,upper,capitalize,center。
1. 字符串的索引与切片
字符串从左至右是有顺序的,我们通过索引来确定它的位置。索引类似C语言中的下标
- s[index]
切片是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串
- s[start_index : end_index+1 : step]
- 顾头不顾腚(结尾得往下取一位)
- 倒序,需要使用反向步长s[::-1]
- 索引无论使用正数还是负数都仅表示位置。这里是否使用反向步长需要注意一下
1 | print(a[-1:0]) #不能从-1 到 0 |
- 注意:索引、切片出来的数据与原来是没有联系的。
1 | s2 = s1[0] |
2. 字符串的常用操作方法
注意: 新字符串与原字符串没有联系,这些操作都是产生一个新的字符串。
count
- 计算字符串中参数出现的个数
1
2res = a.count("a")
res = a.count("a",4,8) #对res的切片内容进行a的计数
- startswith 与 endswith 判断以什么为开头,什么为结尾
1 | a = 'abcdefghijklmnopqrstuvwxyz' |
- split
- 形成一个不包含这个分割元素的列表(默认按照空格分格,返回一个链表)
- str —>list
1 | a = 'abcdefghijklmnopqrstuvwxyz' |
join (iterate)非常好用 联合
- list —> str
- iterate 是可迭代对象
- 前提:使用join方法的对象必须是字符串!!!
1
2
3
4
5
6
7s1 = 'xiao'
s2 = '+'.join(s1)
print(s2) #x+i+a+o
l1 = ['xiaobai','xiaohuang','xiaohei']
s3 = ':'.join(l1)
print(s3) #xiaobai:xiaohuang:xiaohei
- format的三种玩法,格式化输出
1 | res = '{}{}{}'.format('naqin',18,'male') |
format方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22# 占位填充
format('ab%scd'%5) # ab5cd
# 填充
format('aksfhakefhk','<20') # 'aksfhakefhk '
# 填充:
format('aksfhakefhk',':<20') # 'aksfhakefhk:::::::::'
# 填充*
format('lfajlajl', '*>30') # '**********************lfajlajl'
# 默认
format(2918) # '2918'
# 十六进制的值
format(0x500, 'X') # '500'
# 在总个数内不填充
format(3.14, '0=4') # '3.14'
# 不够5个就用0填充
format(3.14, '0=5') # '03.14'
# 小数点后保留 2-1 位
format(3.14159, '.2') # '3.1'
# 总数不够就用0 填充
format(3.14159, '05.3') # '03.14'
# 科学计数
format(3.14159, 'E') # '3.141590E+00'
strip 移除字符串头尾指定的字符
- 默认去除空格,tab,\t,\n
- 去除指定的字符 (从前往后从后往前,遇到一个清除一个,若遇到不含参数内的字符时停止)
1
2
3s4 = 'rre小r白qsd'
s5 = s4.strip('rqsed')
print(s5) #小r白- 只能删除开头或是结尾的字符,不能删除中间部分的字符。
replace
- replace方法不是对原来的字符串做改变,而是新产生一个改变后的字符串,所以依旧需要赋值替换。
1 | msg = '小白很丑,小白是xx' |
- is系列
- 应用:字符串合法性检查
1 | a.isalnum() #字符串由字母或数字组成 |
find() 返回找到的元素的索引,找不到返回-1
index()返回找到的元素的索引,找不到报错
upper(所有字母大写,中文或数字忽略) 、lower(所有字母小写)
- 应用:验证码(不区分大小写)
capitalize(首字母大写)、swapcase(大小写翻转)、title(每个单词大写)
center
1 | st = 'runoob' |