Eu tenho uma sub-string:
substring = "please help me out"
Eu tenho outra string:
string = "please help me out so that I could solve this"
Como faço para saber se substringé um subconjunto do stringuso de Python?
Eu tenho uma sub-string:
substring = "please help me out"
Eu tenho outra string:
string = "please help me out so that I could solve this"
Como faço para saber se substringé um subconjunto do stringuso de Python?
Respostas:
com 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, mais aqui
foo = "blahblahblah"
bar = "somethingblahblahblahmeep"
if foo in bar:
# do something
(A propósito - tente não nomear uma variável string, já que existe uma biblioteca padrão do Python com o mesmo nome. Você pode confundir as pessoas se fizer isso em um projeto grande, portanto, evitar colisões como essa é um bom hábito a se adquirir.)
Se você está procurando mais do que Verdadeiro / Falso, seria mais adequado usar o módulo re, como:
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() retornará a string "por favor me ajude".
Pensei em adicionar isso caso você esteja pensando em como fazer isso para uma entrevista técnica onde eles não querem que você use a função integrada do Python inou find, o que é horrível, mas acontece:
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
if len(substring) > len(string) return Falsetambém que o intervalo do loop deve ser melhor range(len(string)-len(substring))porque você não encontrará uma palavra de três letras nas duas últimas letras da string. (Salva algumas iterações).
As pessoas mencionaram string.find(), string.index()e string.indexOf()nos comentários, e eu os resumi aqui (de acordo com a documentação do Python ):
Em primeiro lugar, não existe um string.indexOf()método. O link postado por Deviljho mostra que esta é uma função JavaScript.
Em segundo lugar, string.find()e string.index()realmente retorna o índice de uma substring. A única diferença é como eles lidam com a situação de substring não encontrada: string.find()retorna -1enquanto string.index()levanta um ValueError.
Você também pode tentar o método find (). Ele determina se string str ocorre em string ou em uma substring de string.
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
Também pode usar este método
if substring in string:
print(string + '\n Yes located at:'.format(string.find(substring)))