У меня есть подстрока:
substring = "please help me out"
У меня есть еще одна строка:
string = "please help me out so that I could solve this"
Как найти, если substring
является подмножеством string
с использованием Python?
У меня есть подстрока:
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
foo = "blahblahblah"
bar = "somethingblahblahblahmeep"
if foo in bar:
# do something
(Кстати, попробуйте не называть переменную string
, так как там есть стандартная библиотека Python с тем же именем. Вы можете смутить людей, если вы сделаете это в большом проекте, поэтому избегайте подобных конфликтов привычка попасть.)
Если вы ищете больше, чем True/False, вам лучше всего использовать модуль re, например:
import re
search="please help me out"
fullstring="please help me out so that I could solve this"
s = re.search(search,fullstring)
print(s.group())
s.group()
вернет строку "пожалуйста, помогите мне".
Думаю, я бы добавил это, если вы смотрите, как это сделать для технического интервью, где они не хотят, чтобы вы использовали встроенную функцию Python in
или find
, что ужасно, но делает бывает:
string = "Samantha"
word = "man"
def find_sub_string(word, string):
len_word = len(word) #returns 3
for i in range(len(string)-1):
if string[i: i + len_word] == word:
return True
else:
return False
Люди упомянули string.find()
, string.index()
и string.indexOf()
в комментариях, и я суммирую их здесь (в соответствии с Документацией на Python):
Прежде всего, не существует метода string.indexOf()
. Ссылка, размещенная Deviljho, показывает, что это функция JavaScript.
Во-вторых, string.find()
и string.index()
фактически возвращают индекс подстроки. Единственное различие заключается в том, как они обрабатывают не найденную ситуацию: string.find()
возвращает -1
, а string.index()
вызывает ValueError
.
Вы также можете попробовать метод find(). Он определяет, существует ли строка str в строке или в подстроке строки.
str1 = "please help me out so that I could solve this"
str2 = "please help me out"
if (str1.find(str2)>=0):
print("True")
else:
print ("False")
In [7]: substring = "please help me out"
In [8]: string = "please help me out so that I could solve this"
In [9]: substring in string
Out[9]: True
def find_substring():
s = 'bobobnnnnbobmmmbosssbob'
cnt = 0
for i in range(len(s)):
if s[i:i+3] == 'bob':
cnt += 1
print 'bob found: ' + str(cnt)
return cnt
def main():
print(find_substring())
main()
Можно также использовать этот метод
if substring in string:
print(string + '\n Yes located at:'.format(string.find(substring)))