Tengo una cadena y un índice arbitrario en la cadena. Quiero encontrar la primera aparición de una subcadena antes del índice.Python Reverse Find en la cadena
Un ejemplo: Quiero encontrar el índice de la segunda I utilizando el índice y str.rfind()
s = "Hello, I am 12! I like plankton but I don't like Baseball."
index = 34 #points to the 't' in 'but'
index_of_2nd_I = s.rfind('I', index)
#returns = 36 and not 16
Ahora yo esperaría rfind() para devolver el índice de la segunda I (16) pero devuelve 36. después de buscarlo en los documentos descubrí que rfind no representa el hallazgo inverso.
Soy totalmente nuevo en Python, así que ¿hay una solución integrada para realizar búsquedas inversas? Como invertir la cadena con magia python [:: - 1] y usar find, etc. ¿O tendré que invertir la iteración de char por char a través de la cadena?
Si jsz realmente es 12 entonces él/ella es un niño brillante ;-) – sidewinderguy
Sí, el inicio de la búsqueda inversa no es el elemento más a la derecha. Encuentro (en el juego de palabras intencionado) que '' r' 'en' 'rfind'' es engañoso. Es menos ambiguo ver 's.rfind (s, start, end)' como devolver la * última * ocurrencia en 's [start: end]'. – YvesgereY