Método translate() em Python
Em Python, o método translate() é uma ferramenta importante para realizar várias tarefas de processamento e normalização de textos. Ele é usado para modificar strings substituindo ou removendo caracteres. Ou seja, ele retorna uma cópia da string com caracteres traduzidos ou removidos com base em uma tabela de tradução. A tabela de tradução é um mapeamento de caracteres para realização tanto de substituições quanto de remoções.
Mapeamentos com str.maketrans()
Em código, o método translate() recebe a tabela de tradução como argumento. Essa tabela pode conter caracteres para substituição e para remoção. Ela é criada usando a função str.maketrans(). Veja alguns exemplos abaixo para a criação da tabela:
# cria tabela de tradução apenas para troca
tabela_para_troca1 = str.maketrans('abc', 'xyz') # Troca 'a' com 'x', 'b' com 'y', 'c' com 'z'
# cria tabela de tradução com troca e remoção
tabela_para_troca2 = str.maketrans('abc', 'xyz', 'r') # Troca 'a' com 'x', 'b' com 'y', 'c' com 'z' e remove 'r'
# cria tabela de tradução apenas com remoção
tabela_para_troca3 = str.maketrans('', '', 'aeiou') # Remove vogais
O primeiro mapeamento que a tabela criada com str.maketrans() realiza é de substituição. Esse mapeamento contém na primeira posição os caracteres que devem ser buscados em uma string e, na segunda posição, os caracteres que devem ser colocados em seu lugar. A tabela_para_troca1 mostrada acima é um exemplo disso.
Para incluir também caracteres para serem removidos com translate(), eles devem ser definidos na tabela apenas após o mapeamento inicial, como feito na tabela_para_troca2.
Se não existe a intenção de realizar nenhum mapeamento para troca, suas posições na tabela precisam ser preenchidas com strings vazias, como feito na tabela_para_troca3 mostrada acima.
O método translate() em código
Para realizar a tradução de uma string, a função translate() itera sobre seus caracteres procurando os caracteres que devem ser substituídos ou removidos com base na tabela recebida e os substitui. Veja um exemplo:
# Tradução com translate
# tabela de mapeamento
tabela_para_troca1 = str.maketrans('abc', 'xyz') # Troca 'a' com 'x', 'b' com 'y', 'c' com 'z'
# string
minha_string = 'abracadabra'
# troca os caracteres da string a partir da tabela de tradução
texto_traduzido = minha_string.translate(tabela_para_troca1)
print(texto_traduzido)
# resultado: xyrxzxdxyrx
Nesse exemplo, a função translate() realizou apenas a substituição de caracteres com base na tabela de tradução. No exemplo abaixo, realizamos apenas a remoção.
# Remoção de caracteres com translate
texto = "Este é um texto com pontuação!@#$%^&*"
remove_caracteres = str.maketrans('', '', '!@#$%^&*')
texto_traduzido = texto.translate(remove_caracteres)
print(texto_traduzido)
# resultado: Este é um texto com pontuação
Evidentemente, podemos realizar trocas e remoções simultaneamente, como ilustrado abaixo:
# Remoção e troca de caracteres com translate
texto = "Este é um texto com abracadabra!@#$%^&*"
remove_caracteres = str.maketrans('abc', 'xyz', '!@#$%^&*')
texto_traduzido = texto.translate(remove_caracteres)
print(texto_traduzido)
# resultado: Este é um texto zom xyrxzxdxyrx
Veja também:
Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.