Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #23364
    Nelson
    Participant

      Boa tarde. Tenho um texto que gostaria de retirar/substituir de uma vez só algumas palavras que estão numa lista.

      Exemplo:

      texto_antes = “gostaria de solicitar um novo documento para o meu trabalho”

      lista = [“documento”, “trabalho”]

      texto_depois = “gostaria de solicitar um novo ###### para o meu #####”

      Tentei o re.sub e o replace, mas não consegui chegar no resultado esperado acima.

      Alguma dica de como conseguiria chegar no “texto_depois”?

      Obrigado.

      • This topic was modified 4 years, 9 months ago by Nelson.
      • This topic was modified 4 years, 9 months ago by Nelson.
      #23367

      Olá Nelson, boa noite!

      O método replace só substitui uma string por vez. E ele não faz substituições cumulativas. Ele sempre substitui a string original. Isso significa que se você tentar aplicar o método, ele faz isso

       

      ‘gostaria de solicitar um novo ##### para o meu trabalho’

      ‘gostaria de solicitar um novo documento para o meu ######’

       

      Pois o método não é cumulativo. Uma forma de fazer as duas substituições (e quantas mais você quiser) seria preencher uma lista e ir substituindo aos poucos

       

      texto_antes = 'gostaria de solicitar um novo documento para o meu trabalho'
      
      lista = ['documento', 'trabalho']
      
      
      substituidos = [texto_antes]
      
      for i in lista:
        substituto_mais_recente = substituidos[-1].replace(i,'#####')
        substituidos.append(substituto_mais_recente)
      
      texto_depois = substituidos[-1]
      
      print(texto_depois)
      

       

      Qualquer dúvida sobre como esse código acima funciona é só perguntar

      Espero ter ajudado

      #23371
      Nelson
      Participant

        Excelente ! Funcionou. Muito obrigado !

        #44824
        Jones Granatyr
        Keymaster

          Que bom que deu certo!

        Viewing 4 posts - 1 through 4 (of 4 total)
        • You must be logged in to reply to this topic.