Estoy buscando un método string.contains
o string.indexof
en Python.
Quiero hacer:
if not somestring.contains("blah"):
continue
Puede utilizar el operador in
:
if "blah" not in somestring:
continue
Si sólo se trata de una búsqueda de subcadenas, puede utilizar string.find("substring")
.
Sin embargo, hay que tener un poco de cuidado con find
, index
y in
, ya que son búsquedas de subcadenas. En otras palabras, esto:
s = "This be a string"
if s.find("is") == -1:
print "No 'is' here!"
else:
print "Found 'is' in the string."
Imprimiría Found 'is' in the string.
De forma similar, if "is" in s:
se evaluaría a True
. Esto puede o no ser lo que usted quiere.
si aguja en pajar:
es el uso normal, como dice @Michael -- se basa en el operador in
, más legible y rápido que una llamada a un método.
Si realmente necesitas un método en lugar de un operador (por ejemplo, para hacer alguna extraña clave=
para una clase muy peculiar...), sería 'pajar'.__contiene__
. Pero como tu ejemplo es para usarlo en un if
, supongo que no quieres decir realmente lo que dices;-). No es una buena forma (ni legible, ni eficiente) usar métodos especiales directamente -- están destinados a ser usados, en cambio, a través de los operadores y builtins que delegan en ellos.