¿Cómo puedo dividir una cadena por la posición de una palabra?

Mis datos se parece a esto:

test = 'annamarypeterson, Guest Relations Manager, responded to this reviewResponded 1 week agoDear LoreLoreLore,Greetings from Amsterdam!We have received your wonderful comments and wanted to thank you for sharing your positive experience with us. We are so thankful that you have selected the Andaz Amsterdam for your special all-girls weekend getaway. Please come and see us again in the near future and let our team pamper you and your girlfriends!!Thanks again!Anna MaryAndaz Amsterdam -Guest RelationsReport response as inappropriateThank you. We appreciate your input.This response is the subjective opinion of the management representative'

Necesito esta salida:

responder = 'annamarypeterson, Guest relations Manager'
date = 'Responded 1 week ago'
response = 'Dear ....' #without 'This response is the subjective opinion of the management representative'

Sé que la find.() función proporciona la posición de una palabra, y yo quiero utilizar esta posición para decirle a Python donde a dividir. Por ejemplo:

splitat = test.find('ago')+3

Qué función se puede utilizar para dividir un entero? El split() función no funciona con un int.

  • El tratamiento de la cadena como una matriz de uso de los str[:splitat] la notación
  • Son las cadenas de caracteres de la lista de charachters y el apoyo de rebanar
  • Python cadenas son básicamente inmutable de la lista, sólo se puede utilizar rebanada creo, prueba[splitat:splitat+3] por ejemplo.
  • Si usted puede afectar la manera en que los datos originales se ve, ir a por ello. El formato se puede trabajar no le favorece en absoluto. Si usted puedeno, elija una de las soluciones que se publica a continuación.
InformationsquelleAutor Lisadk | 2017-10-16

2 Comentarios

  1. 6

    Usted puede hacer esto con cadenas de caracteres (y listas), utilizando rebanar:

    str = "hello world!"
    splitat = 4
    l, r = str[:splitat], str[splitat:]

    resultará en:

    >>> l
    hell
    >>> r
    o world!
  2. 2

    Tal vez la solución más sencilla es utilizar la cadena de rebanar:

    test = 'annamarypeterson, Guest Relations Manager, responded to this reviewResponded 1 week agoDear LoreLoreLore,Greetings from Amsterdam!We have received your wonderful comments and wanted to thank you for sharing your positive experience with us. We are so thankful that you have selected the Andaz Amsterdam for your special all-girls weekend getaway. Please come and see us again in the near future and let our team pamper you and your girlfriends!!Thanks again!Anna MaryAndaz Amsterdam -Guest RelationsReport response as inappropriateThank you. We appreciate your input.This response is the subjective opinion of the management representative'
    pos = test.find('ago') + 3
    print(test[:pos], test[pos:])

Dejar respuesta

Please enter your comment!
Please enter your name here