Dividir una cadena por un delimitador en python


195

Cómo dividir esta cadena donde __está el delimitador

MATCHES__STRING

Para obtener una salida de ['MATCHES', 'STRING']?



8
Vale la pena leer los documentos estándar de Python y tratar de comprender algunos programas que otros han hecho para comenzar a comprender los conceptos básicos de Python. Practicar y copiar / modificar son excelentes herramientas para aprender el idioma.
Tony Veijalainen

Respuestas:


327

Puedes usar la str.splitfunción:string.split('__')

>>> "MATCHES__STRING".split("__")
['MATCHES', 'STRING']

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

44
@EndenDragon El bucle for se aplicará automáticamente x.strip()y devolverá una lista de coincidencias sin espacios en blanco a ambos lados. El diablo está en los detalles.
Sébastien Vercammen

Oye, como esta es una pregunta muy popular, la edité para hacer solo una pregunta específica y eliminé la parte con los espacios alrededor del delimitador porque no estaba claro qué esperaba el OP (dado que nunca hubo una pregunta en la pregunta). Creo que la pregunta (y las respuestas) son más útiles de esta manera, pero no dude en revertir todas las ediciones si no está de acuerdo.
Aran-Fey

4

Puede interesarle el csvmódulo, que está diseñado para archivos separados por comas, pero que puede modificarse fácilmente para usar un delimitador personalizado.

import csv
csv.register_dialect( "myDialect", delimiter = "__", <other-options> )
lines = [ "MATCHES__STRING" ]

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

1

Cuando tiene dos o más elementos (en el ejemplo a continuación hay tres) elementos en la cadena, puede usar una coma para separar estos elementos:

date, time, event_name = ev.get_text(separator='@').split("@")

Después de esta línea de código, las tres variables tendrán valores de tres partes de la variable ev

Entonces, si la variable ev contiene esta cadena y aplicamos el separador '@':

Sa., 23. März @ 19: 00 @ Klavier + Orchester: SPEZIAL

Luego, después de la operación dividida, la variable

  • la fecha tendrá el valor "Sa., 23. März"
  • el tiempo tendrá valor "19:00"
  • event_name tendrá el valor "Klavier + Orchester: SPEZIAL"
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.