Python输出某字符出现的所有索引位置
时间: 2024-01-06 13:04:38 浏览: 54
当你需要查找某个字符在字符串中出现的所有索引位置时,可以使用Python内置的`find()`和`index()`方法,或者使用正则表达式模块`re`。
下面是使用`find()`方法查找字符在字符串中出现的所有索引位置的示例代码:
```python
s = "hello world"
char = "o"
indices = []
i = s.find(char)
while i != -1:
indices.append(i)
i = s.find(char, i+1)
print(indices)
```
输出结果为:
```
[4, 7]
```
上述代码中,我们定义了字符串`s`和字符`char`,并创建了一个空列表`indices`来存储字符`char`在字符串`s`中出现的所有索引位置。然后,我们使用`find()`方法查找字符`char`在字符串`s`中的第一个索引位置,并将其添加到`indices`列表中。接着,我们使用`find()`方法的第二个参数指定查找字符`char`的起始位置,以避免重复查找。最后,我们循环执行`find()`方法,直到字符`char`在字符串`s`中不存在为止。
如果你想使用`index()`方法实现相同的功能,只需将代码中的`find()`方法替换为`index()`方法即可。但需要注意的是,当字符`char`在字符串`s`中不存在时,`index()`方法会抛出`ValueError`异常。
如果你想使用正则表达式模块`re`来实现相同的功能,可以使用`findall()`方法。下面是使用`re`模块查找字符在字符串中出现的所有索引位置的示例代码:
```python
import re
s = "hello world"
char = "o"
indices = [m.start() for m in re.finditer(char, s)]
print(indices)
```
输出结果为:
```
[4, 7]
```
上述代码中,我们首先导入了`re`模块,然后定义了字符串`s`和字符`char`。接着,我们使用`finditer()`方法查找字符`char`在字符串`s`中出现的所有匹配项,并将这些匹配项的起始位置添加到`indices`列表中。最后,我们使用列表推导式将匹配项的起始位置提取出来,得到字符`char`在字符串`s`中出现的所有索引位置。