Python 3, sostituisci nelle stringhe

1

Ho bisogno di traslitterare un testo ebraico. Così ha scritto un piccolo script Python, che legge il testo ebraico da un file di testo, sostituisce globalmente le lettere ebraiche con quelle latine. Ora ho bisogno di fare un po 'di messa a punto (sostituire alcune cose in una certa posizione ma non in un'altra, quindi una sostituzione globale non funzionerà). Il problema è il seguente: Il testo letto è una stringa, quindi non posso sostituire singoli elementi di stringa. Quindi, quale sarebbe il modo migliore per farlo?

    
posta Moked 10.05.2012 - 22:11
fonte

2 risposte

1

Converti la tua stringa in una lista. O una lista di lettere o (se questo funziona nel tuo caso) un elenco di parole. Questo è un approccio di base, ma dovrebbe funzionare se la stringa è memorizzata in ordine di scrittura (piuttosto che ordine di visualizzazione).

text_as_list = list(text_as_string)
replace_letters(text_as_list)  # this is the bit you're implementing
text_as_string = "".join(text_as_list)
    
risposta data 11.05.2012 - 00:57
fonte
1

Se hai bisogno di tirare il ";" da "Hebrew W; rd" invece di scrivere una lista e scorrere attraverso di essa, trova il carattere sostitutivo e sostituiscilo.

Se la conversione dall'ebraico al latino lascia ";" dove "x" dovrebbe essere, scorrere e sostituire i caratteri.

while ";" in converted_string:
     converted_string = converted_string.replace(";","x")

Se alcuni ";" sono legittimi all'interno della stringa, piuttosto che richiedere le condizioni prima di eseguire il codice per restringere quali caratteri errati sostituire.

while ";" in converted_string:
      if converted_string[converted_string.find(";")-1] != "z": # sample condition
           converted_string = converted_string.replace(";","x") 

Il vero trucco non è se utilizzare elenchi o stringhe, ma scrivere le condizioni abbastanza bene che l'analisi del codice sia accurata.

    
risposta data 17.08.2013 - 10:57
fonte

Leggi altre domande sui tag