python使用find查找所有子串
时间: 2023-07-16 19:15:51 浏览: 128
可以使用循环和find方法来查找所有子串,具体实现如下:
```python
def find_all_substrings(string, substring):
"""
查找所有子串
"""
start = 0
results = []
while True:
start = string.find(substring, start)
if start == -1:
break
results.append(start)
start += 1
return results
```
其中,string表示要查找的字符串,substring表示要查找的子串。该函数返回一个列表,列表中的每个元素表示子串在原字符串中出现的位置。
示例代码:
```python
string = "hello world, world is beautiful"
substring = "world"
results = find_all_substrings(string, substring)
print(results) # [6, 18]
```
上述代码中,要查找的字符串为"hello world, world is beautiful",要查找的子串为"world",函数返回的结果为[6, 18],表示子串在原字符串中出现的位置。
相关问题
python字符串查找子串
当然可以,你可以使用Python内置的find()函数来查找字符串中是否包含子串,如果包含,它会返回子串第一次出现的索引位置。如果不包含,它会返回-1。例如:
```
s = 'hello world'
sub = 'world'
index = s.find(sub)
if index != -1:
print(f"子串在字符串中的索引位置是{index}")
else:
print("找不到该子串!")
```
Python 字符串列表 使用子串匹配确定索引
在Python中,如果你有一个字符串列表并且需要使用子串(substring)匹配来确定某个子串在每个字符串中的位置,你可以使用`str.find()`、`str.index()` 或者列表推导式结合这两个函数一起完成。下面是基本步骤:
1. **`find()` 函数**:它返回子串在字符串中首次出现的位置,如果没有找到则返回-1。
```python
string_list = ['apple', 'banana', 'cherry']
sub_string = 'an'
indices = [i for i, s in enumerate(string_list) if s.find(sub_string) != -1]
```
2. **`index()` 函数**:也用于查找子串,如果找不到会抛出异常,所以通常用于已知存在的情况。
```python
indices = [s.index(sub_string) for s in string_list if sub_string in s]
```
注意:`index()` 方法会在整个字符串中寻找,所以在列表推导式中,我们还需要判断子串是否存在于字符串中。
3. **列表推导式**:这是一种简洁的方式,可以直接在一行内完成匹配和索引的查找。
```python
indices = [i for i, s in enumerate(string_list) if sub_string in s and s.find(sub_string) != -1]
```
以上代码将返回一个包含子串在列表中相应位置索引的列表。如果没有找到匹配项,则结果列表将是空的。
阅读全文