Tengo una subcadena:
substring = "please help me out"
Tengo otra cadena:
string = "please help me out so that I could solve this"
¿Cómo encuentro si substring
es un subconjunto del string
uso de Python?
con 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
, más aquísubstring
enstring
, entonces quieres usar string.index(Por cierto, intente no nombrar una variable
string
, ya que hay una biblioteca estándar de Python con el mismo nombre. Puede confundir a la gente si hace eso en un proyecto grande, por lo que evitar colisiones como esa es un buen hábito).fuente
Si está buscando algo más que Verdadero / Falso, sería mejor utilizar el módulo re, como:
s.group()
devolverá la cadena "por favor, ayúdame".fuente
Pensé que agregaría esto en caso de que esté buscando cómo hacer esto para una entrevista técnica en la que no quieren que use la función incorporada de Python
in
ofind
, lo cual es horrible, pero sucede:fuente
if len(substring) > len(string) return False
también que el rango del bucle debería ser mejorrange(len(string)-len(substring))
porque no encontrará una palabra de tres letras en las dos últimas letras de la cadena. (Guarda algunas iteraciones).Las personas mencionaron
string.find()
,string.index()
ystring.indexOf()
en los comentarios, y los resumo aquí (de acuerdo con la documentación de Python ):En primer lugar, no existe un
string.indexOf()
método. El enlace publicado por Deviljho muestra que esta es una función de JavaScript.En segundo lugar,
string.find()
y enstring.index()
realidad devuelve el índice de una subcadena. La única diferencia es cómo manejan la situación de subcadena no encontrada:string.find()
devuelve-1
mientrasstring.index()
genera unValueError
.fuente
También puede probar el método find (). Determina si la cadena str ocurre en una cadena o en una subcadena de cadena.
fuente
fuente
fuente
También puede utilizar este método
fuente
En lugar de usar find (), una de las formas más fáciles es el uso de 'in' como arriba.
si 'subcadena' está presente en 'str', entonces si parte se ejecutará, de lo contrario, parte se ejecutará.
fuente