В этой статье блога мы рассмотрим различные методы поиска всех вхождений начальных индексов подстрок внутри строки в Python. Мы изучим различные методы кодирования и по ходу дела предоставим простые для понимания примеры. Итак, приступим и разгадаем секреты поиска подстрок!
Метод 1: использование цикла и функции find().
Один из простых подходов — перебрать строку с помощью цикла и использовать встроенную функцию find()для определения начальных индексов. из подстрок. Вот пример:
def find_substring_indices(string, substring):
indices = []
length = len(substring)
index = string.find(substring)
while index != -1:
indices.append(index)
index = string.find(substring, index + length)
return indices
# Example usage
text = "Hello, hello, hello!"
substring = "hello"
indices = find_substring_indices(text, substring)
print(indices) # Output: [0, 7, 14]
Метод 2: использование модуля регулярных выражений (re)
Модуль reпредоставляет мощные инструменты для сопоставления шаблонов в строках. Мы можем использовать функцию finditer()для извлечения всех вхождений нужных индексов начала подстроки. Вот пример:
import re
def find_substring_indices(string, substring):
pattern = re.compile(f'(?={substring})')
indices = [match.start() for match in pattern.finditer(string)]
return indices
# Example usage
text = "I scream, you scream, we all scream for ice cream!"
substring = "scream"
indices = find_substring_indices(text, substring)
print(indices) # Output: [2, 10, 23]
Метод 3: использование List Comprehension и enumerate()
List Comprehension в сочетании с функцией enumerate()обеспечивает краткий способ поиска начальных индексов подстроки. Вот пример:
def find_substring_indices(string, substring):
indices = [i for i, _ in enumerate(string) if string.startswith(substring, i)]
return indices
# Example usage
text = "Python is powerful, Python is versatile, Python is fun!"
substring = "Python"
indices = find_substring_indices(text, substring)
print(indices) # Output: [0, 17, 39]
В этой статье мы рассмотрели три различных метода поиска всех вхождений начальных индексов подстроки в строке с использованием Python. Мы рассмотрели такие методы, как функция find(), регулярные выражения, понимание списков и функция enumerate(). К настоящему моменту вы должны иметь четкое представление о том, как подойти к этой задаче, и выбрать метод, который лучше всего соответствует вашим потребностям. Приятного кодирования!