У меня есть подстрока:
substring = "please help me out"
У меня есть еще одна строка:
string = "please help me out so that I could solve this"
Как узнать, что substring
это подмножество string
использования Python?
с in
: substring in string
:
>>> substring = "please help me out"
>>> string = "please help me out so that I could solve this"
>>> substring in string
True
string.indexOf(substring) != -1
, подробнее здесьsubstring
instring
, тогда вы хотите, чтобы вы использовали string.index(Кстати, постарайтесь не называть переменную
string
, поскольку существует стандартная библиотека Python с таким же именем. Вы можете запутать людей, если сделаете это в большом проекте, поэтому избегать подобных столкновений - хорошая привычка.)источник
Если вы ищете больше, чем True / False, вам лучше всего подходит модуль re, например:
s.group()
вернет строку «пожалуйста, помогите мне».источник
Подумал, что я бы добавил это на случай, если вы посмотрите, как это сделать для технического собеседования, где они не хотят, чтобы вы использовали встроенную функцию Python
in
илиfind
, что ужасно, но действительно происходит:источник
if len(substring) > len(string) return False
также проверил, что диапазон цикла должен быть лучше,range(len(string)-len(substring))
потому что вы не найдете трехбуквенного слова в последних двух буквах строки. (Сохраняет несколько итераций).Люди упоминали
string.find()
,string.index()
иstring.indexOf()
в комментариях, и я резюмирую их здесь (согласно документации Python ):Во-первых, это не
string.indexOf()
метод. Ссылка, размещенная Deviljho, показывает, что это функция JavaScript.Во-вторых,
string.find()
иstring.index()
фактически возвращают индекс подстроки. Единственная разница заключается в том, как они обрабатывают ситуацию, когда подстрока не найдена:string.find()
возвращает,-1
покаstring.index()
вызываетValueError
.источник
Вы также можете попробовать метод find (). Он определяет, встречается ли строка str в строке или в подстроке строки.
источник
источник
источник
Также можно использовать этот метод
источник
Вместо использования find (), одним из простых способов является использование 'in', как указано выше.
если 'substring' присутствует в 'str', тогда, если часть будет выполняться, иначе будет выполняться часть else.
источник