partition() e rpartition()
Os métodos partition() e rpartition() dividem uma string em uma tupla contendo três partes: a parte anterior, o separador e a parte posterior a ele. A diferença entre os dois métodos é simples. A função partition() busca o separador a partir do início da string. Já a função rpartition() inicia a busca pelo final da string.
A sintaxe de ambas também é equivalente, veja abaixo:
string.partition(separador)
string.rpartition(separador)
Métodos partition() e rpartition() em código
Para usar ambos os métodos em código, basta definir uma string e um separador para dividi-la. Abaixo, veja um exemplo de uso do método partition:
# exemplo: partition
minha_string = "Em termos de gosto, eu adoro JavaScript, mas eu amo Python"
print(minha_string.partition("eu"))
# resultado: ('em termos de gosto, ', 'eu', ' adoro javascript, mas eu amo python')
Como explicado acima, a função rpartition é parecida. A diferença entre os dois métodos é que, enquanto partition busca o separador a partir do início da string, o partition inicia a busca pelo seu término. Veja um exemplo:
# exemplo: rpartition
minha_string = "Em termos de gosto, eu adoro JavaScript, mas eu amo Python"
print(minha_string.rpartition("eu"))
# resultado: ('Em termos de gosto, eu adoro JavaScript, mas ', 'eu', ' amo Python')
Ambos os métodos também podem ser usados para retornar o início, separador e término da tupla resultante como elementos separados. Assim, extraímos diretamente o que queremos de forma eficiente. Abaixo, mostramos como isso pode ser feito com um exemplo onde imprimimos apenas a parte final da string separada.
url = 'http//www.exemplo.com/blog'
inicio, separador, fim = url.partition('//')
print(fim)
# resultado: www.exemplo.com/blog
Mas e quando o separador não existe?
Operações com string em Python podem produzir resultados inesperados se não existe familiaridade com seus outputs. No caso dos métodos partition() e rpartition(), é importante saber que, caso o separador não exista, a tupla resultante será completada com strings vazias. Especificamente para a função partition(), quando o separador não existe, a tupla resultante terá uma string vazia no lugar do separador e do elemento final. A string completa ocupará a posição inicial da tupla. Esse cenário está ilustrado abaixo:
minha_string = 'O evento foi programado para Setembro.'
print(minha_string.partition('Agosto') )
# o resultado possui duas strings vazias
# resultado: ('O evento foi programado para Setembro.', '', '')
Quando o separador usado como seu argumento não existe, a tupla retornada tem strings vazias nas posições do elemento inicial e do separador para o método rpartition(). Isso é ilustrado abaixo:
# Exemplo de rpartition com um separador inexistente na string
minha_string = 'O curso inicia em uma semana.'
print(minha_string.rpartition('termina') )
# o resultado possui duas strings vazias
# resultado:('', '', 'O curso inicia em uma semana.')
Veja também:
Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.