¿Cuál sería la mejor manera de dividir una cadena en la primera aparición de un delimitador?División en la primera aparición
Por ejemplo:
"123mango abcd mango kiwi peach"
división en el primer mango
llegar:
"abcd mango kiwi peach"
¿Cuál sería la mejor manera de dividir una cadena en la primera aparición de un delimitador?División en la primera aparición
Por ejemplo:
"123mango abcd mango kiwi peach"
división en el primer mango
llegar:
"abcd mango kiwi peach"
De the docs:
str.split([sep[, maxsplit]])
Devuelve una lista de las palabras en la cadena, usando sep como la cadena del delimitador. Si se da maxsplit, como máximo maxsplit se hacen divisiones (por lo tanto, la lista tendrá como máximo
maxsplit+1
elementos).
s.split('mango', 1)[1]
>>> s = "123mango abcd mango kiwi peach"
>>> s.split("mango", 1)
['123', ' abcd mango kiwi peach']
>>> s.split("mango", 1)[1]
' abcd mango kiwi peach'
Para mí, el mejor enfoque es que:
s.split('mango', 1)[-1]
... porque si sucede que la ocurrencia no está en la cadena que obtendrá "IndexError: list index out of range"
Por lo tanto -1
. no recibirá ningún daño porque el número de ocurrencias ya está establecido en uno.
Aquí hay una itertools
aproximación:
s = "123mango abcd mango kiwi peach"
"".join(it.islice(it.dropwhile(lambda x: x != " ", s), 1, None))
#'abcd mango kiwi peach'
¿Qué es el delimitador? Usted dice que se está dividiendo, pero ¿dónde está la primera parte? ¡Tu ejemplo no está nada claro! – GaretJax
Lo siento, olvidé mencionar el delimitador! – Acorn