一、字符串II总结
1.计算字符串中元素出现的次数
x.count(sub[, start[, end]]) 方法是返回 sub 在字符串中不重叠的出现次数。什么叫“不重叠”呢?就是一个元素不能被重复匹配。
>>> x="上海自来水来自海上"
>>> x.count("海")
2
>>> x.count("海",0,5) #字符串从左到右1到6查找
1
2.查找字符串中的元素
x.find() 字符串中元素第一次出现的位置
x.rfind() 从右往左找返回字符串中一次出现元素的下标索引值
x.index() 索引下标值查找
find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
find()函数语法
str.find(str, beg=0, end=len(string))
str – 指定检索的字符串
beg – 开始索引,默认为0。
end – 结束索引,默认为字符串的长度。
>>> str1 = "this is string example....wow!!!";
>>> str2 = "exam";
>
>>> str1.find(str2)
15
>>> str1.find(str2,10) # #查找字符串str2,下标索引从10开始
15
>>> str1.find(str2,10,19)
15
>>> info = 'abca'
>>> info.find('a')
0
>>> info.find('a',1) #查找字符串a,下标索引从1开始
3
>>> info.find('1') #不存在返回-1
-1
>>> info.find('c')
2
>>>
字符串中找不到元素
>>> x.rfind("海") #从右往左找
7
>>> x.find("龟") #字符串中找不到元素返回-1
-1
>>> x.index("龟")
Traceback (most recent call last):
File "<pyshell#32>", line 1, in <module>
x.index("龟")
ValueError: substring not found
3.填充空格使tab等于对应得空格数
code.expandtabs(4) 填充空格使tab等于对应得空格数
>>> code="""
print("I love Fishc")
print("I love my wife")"""
>>> new_code=code.expandtabs(4)
>>> print(new_code)
print("I love Fishc")
print("I love my wife")
4.对字符串进行替换
方法1:
" 字符串1,字符串2".replace(“字符串2”,“字符串3”)
>>> "在吗!我在你家楼下,快点下来!!".replace("在吗","想你")
'想你!我在你家楼下,快点下来!!'
方法2:
translate(table) 返回一个根据table参数转换后的新字符串,table这里指的是一个转换规则的表格。
table一般是用str.maketrans(x[,y[,z]])这个方法来获取
>>> table=str.maketrans("ABCDEFG","1234567")
# 1234567替换成ABCDEFG
# str.maketrans() 字符串的一个静态方法
>>> "I love Fishc".translate("1234567")
'I love Fishc'
>>> "I love Fishc".translate(table)
'I love 6ishc'
>>> "I love Fishc".translate(str.maketrans("ABCDEFG","1234567"))
'I love 6ishc'
>>> "I love Fishc".translate(str.maketrans("ABCDEFG","1234567","love")) #忽略love这个字符串
'I 6ishc'
>>>
另一种写法:“I love Fishc”.translate(str.maketrans(“ABCDEFG”,“1234567”))
H="I love Fishc.com"
J="ABCDEFG"
K="1234567"
print(H.translate(str.maketrans(J,K)))
课后题:
3. 请问下面代码执行的结果(为了你可以更容易地计数,下面使用 * 表示空格)?
Hello***FishC
Hello*FishC
Hello*****FishC
Hello*****FishC
制表键(tab)
4. 请问下面代码打印的结果是什么?
>>> "I love FishC.com".translate(str.maketrans("ABCDEFG", "12345678"))
答:报错。
解析:str.maketrans() 方法要求两个构成映射关系的参数必须是等长的。另外,也必须是参数的类型也必须是字符串才行哦。
5. 请问下面代码打印的结果是什么?
>>> "I love FishC.com".translate(str.maketrans("love", "1234", "love"))
答:‘I FishC.cm’
解析:str.maketrans() 方法是先执行替换还是先执行忽略操作。事实证明,如果传入了第 3 个参数,那么它是先忽略掉 ‘l’、‘o’、‘v’、‘e’ 4 个字符,然后再执行替换操作。
题目来自链接: 小甲鱼python