2011-09-09 25 views

Respuesta

163

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 
+10

Gosh, pitón es demasiado fuerte, yo era pensar que necesita una función para hacerlo, pero es una acumulación en una Oo – windsound

+0

En realidad, estaba aprendiendo JS después de aprender Python, para esto necesitaría agregar un montón de instrucciones if else y otras cosas. Entonces, solo quería recordar cómo se hizo en Python, esta respuesta me hizo decir '¡Por supuesto!', Quiero decir que cosas como esta en Python son tan triviales que nunca se les ocurre pensar mucho. : P –

+0

@GamesBrainiac En realidad, para hacer lo mismo en JS es simplemente 'string.indexOf (substring)! = -1', más [aquí] (http: // stackoverflow.com/questions/1789945/how-can-i-check-if-one-string-contains-another-substring-in-javascript) – Deviljho

1
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 
20
foo = "blahblahblah" 
bar = "somethingblahblahblahmeep" 
if foo in bar: 
    # do something 

(Por cierto - tratar de no nombrar una variable string, ya que hay una biblioteca estándar de Python con el mismo nombre Es posible confundir a la gente. Si lo hace en un proyecto grande, evitar colisiones como esa es una buena costumbre para entrar.)

+0

No solo confundes sino que también rompes todo haciendo referencia a la cadena después de ese punto. – rplnt

13

Si está buscando algo más que un Verdadero/Falso se, usted sería el más adecuado para utilizar el módulo de regreso, 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() devolverá la cadena "por favor me ayude".

+1

Buen consejo sobre búsquedas de expresiones regulares. –

+0

en una nota más ligera. si intentas resolver algo con expresión regular, estás tratando de resolver dos problemas. –

5

También puedes probar el método find(). Determina si string str ocurre en string, o en una subcadena 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") 
8

gente mencionó string.find(), string.index(), y string.indexOf() en los comentarios, y los resumen aquí (de acuerdo con el Python Documentation):

En primer lugar no hay un método string.indexOf(). El enlace publicado por Deviljho muestra que esta es una función de JavaScript.

En segundo lugar, string.find() y string.index() realmente devuelven el índice de una subcadena. La única diferencia es cómo manejan la situación de la subcadena no encontrada: string.find() devuelve -1 mientras que string.index() levanta un ValueError.

9

pensaba que iba a añadir esto en caso de que usted está buscando la manera de hacer esto para una entrevista técnica en la que no quieren usar la función de Python incorporada in o find, que es horrible, pero sucede:

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 
+2

Buen ejemplo, pero su identación es incorrecta. Y para acelerar las cosas, comprobaría 'if len (substring)> len (string) return False' también el rango de bucle debería ser' range (len (string) -len (substring)) 'porque no encontrará una palabra de tres letras en las dos últimas letras de la cadena. (Guarda algunas iteraciones). – AnyOneElse

1
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() 
+0

encuentra la subcadena 'bob' en una cadena dada. –

0

también se puede utilizar este método

if substring in string: 
    print(string + '\n Yes located at:'.format(string.find(substring))) 
Cuestiones relacionadas