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 string
uso de Python?
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 aquisubstring
dentrostring
, então você quer usar string.index(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.)fonte
Se você está procurando mais do que Verdadeiro / Falso, seria mais adequado usar o módulo re, como:
s.group()
retornará a string "por favor me ajude".fonte
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
in
oufind
, o que é horrível, mas acontece:fonte
if len(substring) > len(string) return False
também que o intervalo do loop deve ser melhorrange(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()
estring.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()
estring.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-1
enquantostring.index()
levanta umValueError
.fonte
Você também pode tentar o método find (). Ele determina se string str ocorre em string ou em uma substring de string.
fonte
fonte
fonte
Também pode usar este método
fonte
Em vez de usar find (), uma das maneiras mais fáceis é usar 'in' como acima.
se 'substring' estiver presente em 'str', se parte for executada, caso contrário, a parte será executada.
fonte