用find/rfind对于字符串“Hello,Python world"而言,要输出子串“o“出现的位置索引为4,11,15
时间: 2023-05-26 21:06:56 浏览: 101
使用find/rfind方法搜索子串"o",其中find从左往右搜索,rfind从右往左搜索。
使用find方法:
```
s = "Hello,Python world"
index = 0
while True:
i = s.find("o", index)
if i == -1:
break
print(i)
index = i + 1
```
输出结果为:
```
4
11
15
```
使用rfind方法:
```
s = "Hello,Python world"
index = len(s) - 1
while True:
i = s.rfind("o", 0, index + 1)
if i == -1:
break
print(i)
index = i - 1
```
输出结果为:
```
15
11
4
```
注意:在使用rfind方法时,需要将索引范围改为[0, index+1],否则会丢失最后一个子串"o"的位置索引15。
相关问题
字符串find()、rfind()、index()及count()方法使用
这四个方法都是用于在字符串中查找特定子串的方法。它们的使用方法如下:
1. `find(substring, start, end)`方法:在字符串中查找子串substring的起始索引。start和end参数可选,用于指定查找的起始和结束位置。如果找不到子串,返回-1。例如:
```python
str1 = "Hello, World!"
print(str1.find("World")) # 输出6
print(str1.find("Python")) # 输出-1,未找到
print(str1.find("l", 4, 10)) # 输出9,从索引4到索引10之间查找子串"l",返回第一个匹配的索引
```
2. `rfind(substring, start, end)`方法:在字符串中反向查找子串substring的起始索引。start和end参数可选,用于指定查找的起始和结束位置。如果找不到子串,返回-1。例如:
```python
str1 = "Hello, World!"
print(str1.rfind("l")) # 输出10,返回最后一个匹配的索引
print(str1.rfind("Python")) # 输出-1,未找到
print(str1.rfind("o", 5, 10)) # 输出7,从索引5到索引10之间反向查找子串"o",返回最后一个匹配的索引
```
3. `index(substring, start, end)`方法:在字符串中查找子串substring的起始索引。start和end参数可选,用于指定查找的起始和结束位置。如果找不到子串,会抛出ValueError异常。例如:
```python
str1 = "Hello, World!"
print(str1.index("World")) # 输出6
print(str1.index("Python")) # 抛出ValueError异常,未找到
print(str1.index("l", 4, 10)) # 输出9,从索引4到索引10之间查找子串"l",返回第一个匹配的索引
```
4. `count(substring, start, end)`方法:返回子串substring在字符串中出现的次数。start和end参数可选,用于指定查找的起始和结束位置。例如:
```python
str1 = "Hello, World!"
print(str1.count("l")) # 输出3,统计子串"l"在字符串中出现的次数
print(str1.count("Python")) # 输出0,未找到
print(str1.count("l", 4, 10)) # 输出1,从索引4到索引10之间查找子串"l",返回匹配的次数
```
阅读全文