se puede usarsplit con mas de un separador

Pepe Aracil pepe en diselpro.com
Vie Dic 15 10:24:33 CET 2006



Oswaldo Hernández escribió:
> joana salgado gomez escribió:
>>
>>   hola chicos:
>>
>>   tengo la siguiente cadena
>>
>>   instrucciones='tres litros de leche forma de preparacion: echar una
>>   taza de agua y luego remover. . .'
>>
>>   lo que quiero es separar la cadena en dos y para este caso en concreto
>>   es facil ya que se puede hacer
>>   instrucciones.split('forma de preparacion')
>>
>>   pero el problema es que en vez de forma de preparacion puede aparecer,
>>   metodo o prparacion o como se elabora. se prodira hacer un split con
>>   cuatro separadores lo he probado con or-s y no se puede
>>
>>   alguien sabe como hacerlo??
> 
> En un caso parecido lo que hago yo es unificarlos. Mas o menos asi:
> 
> separadores = ('forma', 'metodo', 'elaboracion')
> for s in separadores:
>     instrucciones.replace(s, '@@')
> separadores.split('@@')
> 
> Desconozco si hay otra forma mas directa.
> 
> 

La instrucción "separadores.split('@@')" debería ser "instrucciones.split('@@')"

Con listas comprensivas seria algo como esto.

body="A::B"
separators=["@@","::"]
[body.split(s) for s in separators if s in body]


Esto nos devuelve una lista de listas, útil si existe la posibilidad de encontrar
más de un separador en el texto.

Salud.




Más información sobre la lista de distribución Python-es