2010-08-13 52 views
104

Cómo dividir esta cadena donde $$ TEXT $$ es el delimitador.Dividir una cadena por un delimitador en python

1.MATCHES$$TEXT$$STRING 
    2.MATCHES $$TEXT$$ STRING 
+3

http://docs.python.org/library/stdtypes.html#str.split – getekha

+6

Vale la pena leer los documentos estándar de Python y tratando de entender algunos programas que otros han hecho para empezar a comprender conceptos básicos de Pitón. Practicar y copiar/modificar son excelentes herramientas para aprender el idioma. –

Respuesta

175

string.split('$$TEXT$$')?

>>> a="1.MATCHES$$TEXT$$STRING" 
>>> a.split("$$TEXT$$") 
['1.MATCHES', 'STRING'] 

>>> a="2.MATCHES $$TEXT$$ STRING" 
>>> a.split("$$TEXT$$") 
['2.MATCHES ', ' STRING'] 

y:

>>> [x.strip() for x in "2.MATCHES $$TEXT$$ STRING".split("$$TEXT$$")] 
['2.MATCHES', 'STRING'] 
+1

Me preguntaba, ¿cuál es la diferencia entre el primer ejemplo (simplemente usando split()) y el segundo ejemplo (con un ciclo for)? – EndenDragon

+4

@EndenDragon El bucle for aplicará automáticamente 'x.strip()' y devolverá una lista de coincidencias sin espacio en blanco en ningún lado. El diablo está en los detalles. –

4

Usted puede estar interesado en el módulo csv, que está diseñado para archivos separados por comas, pero puede ser fácilmente modificado para utilizar un delimitador personalizado.

import csv 
csv.register_dialect("myDialect", delimiter = "$$TEXT", <other-options>) 
lines = [ "1.MATCHES$$TEXT$$STRING", "2.MATCHES $$TEXT$$ STRING" ] 

for row in csv.reader(lines): 
    ... 
Cuestiones relacionadas