¿Qué pasa si quiero encontrar la palabra isde la oración this is a cool dude? Intenté el método find pero devuelve el índice 2 en lugar de 5. ¿Cómo puedo lograr esto usando find ()?
Regresor
@Regressor: mira los límites de expresiones regulares y palabras.
mechanical_meat
27
Descripción rápida: indexyfind
Al lado del findmétodo hay también index. findy indextanto producir el mismo resultado: devolver la posición de la primera aparición, pero si no se encuentra nada indexelevará un ValueErrormientras que findlos rendimientos -1. Speedwise, ambos tienen los mismos resultados de referencia.
s.find(t)#returns: -1, or index where t starts in s
s.index(t)#returns: Same as find, but raises ValueError if t is not in s
Conocimientos adicionales: rfindy rindex:
En general, encontrar y índice de rentabilidad del índice más pequeño donde el pasado-in comienza la secuencia, y rfindy rindexdevuelve el índice más grande donde empieza La mayor parte de la cadena de búsqueda algoritmos de búsqueda de izquierda a derecha , por lo que las funciones de arranque con rindican que la búsqueda sucede desde la derecha a la izquierda .
Entonces, en caso de que la probabilidad del elemento que está buscando esté cerca del final que del comienzo de la lista, rfindo rindexsea más rápida.
s.rfind(t)#returns: Same as find, but searched right to left
s.rindex(t)#returns: Same as index, but searches right to left
si la cadena se define como input_string = "this is a sentence"y si deseamos encontrar la primera aparición de la palabra is, ¿funcionará? # first occurence of word in a sentence input_string = "this is a sentence" # return the index of the word matching_word = "is" input_string.find("is")
Regresor
1
implementar esto de manera algorítmica, al no usar ninguna función incorporada de Python. Esto se puede implementar como
def find_pos(string,word):for i in range(len(string)- len(word)+1):if string[i:i+len(word)]== word:return i
return'Not Found'
string ="the dude is a cool dude"
word ='dude1'print(find_pos(string,word))# output 4
Parece que su sangría está desactivada y olvidó cerrar sus comillas. También es útil la explicación de su código y por qué resolvería el problema; ver cómo responder
camille
lo siento, lo edito ... mi código encuentra la primera aparición de una letra en cadena y devuelve su lugar
Benmadani Yazid
0
verso = "Si puedes mantener la cabeza cuando todo acerca de ti \ n Estás perdiendo la suya y culpándote de ti, \ nSi puedes confiar en ti mismo cuando todos los hombres dudan de ti, \ n Pero ten en cuenta también sus dudas; \ nSi puedes esperar y no estar cansado de esperar, \ n O ser mentido, no lidiar con mentiras, \ nO ser odiado, no dar paso al odio, \ n Y sin embargo, no te veas demasiado bien, ni hables demasiado sabio : "
enter code here
print(verse)#1. What is the length of the string variable verse?
verse_length = len(verse)print("The length of verse is: {}".format(verse_length))#2. What is the index of the first occurrence of the word 'and' in verse?
index = verse.find("and")print("The index of the word 'and' in verse is {}".format(index))
-1
si no se encuentrais
de la oraciónthis is a cool dude
? Intenté el método find pero devuelve el índice 2 en lugar de 5. ¿Cómo puedo lograr esto usando find ()?Descripción rápida:
index
yfind
Al lado del
find
método hay tambiénindex
.find
yindex
tanto producir el mismo resultado: devolver la posición de la primera aparición, pero si no se encuentra nadaindex
elevará unValueError
mientras quefind
los rendimientos-1
. Speedwise, ambos tienen los mismos resultados de referencia.Conocimientos adicionales:
rfind
yrindex
:Entonces, en caso de que la probabilidad del elemento que está buscando esté cerca del final que del comienzo de la lista,
rfind
orindex
sea más rápida.Fuente: Python: Visual QuickStart Guide, Toby Donaldson
fuente
input_string = "this is a sentence"
y si deseamos encontrar la primera aparición de la palabrais
, ¿funcionará?# first occurence of word in a sentence input_string = "this is a sentence" # return the index of the word matching_word = "is" input_string.find("is")
implementar esto de manera algorítmica, al no usar ninguna función incorporada de Python. Esto se puede implementar como
fuente
fuente
verso = "Si puedes mantener la cabeza cuando todo acerca de ti \ n Estás perdiendo la suya y culpándote de ti, \ nSi puedes confiar en ti mismo cuando todos los hombres dudan de ti, \ n Pero ten en cuenta también sus dudas; \ nSi puedes esperar y no estar cansado de esperar, \ n O ser mentido, no lidiar con mentiras, \ nO ser odiado, no dar paso al odio, \ n Y sin embargo, no te veas demasiado bien, ni hables demasiado sabio : "
fuente