Pular para o conteúdo

Como Inverter uma String em Python

[

Reversão de Strings em Python: reversed(), Slicing e Mais

Quando você está usando strings em Python com frequência no seu código, pode ser preciso trabalhar com elas em ordem reversa. O Python possui algumas ferramentas e técnicas úteis que podem te ajudar nessas situações. Com elas, você poderá criar rapidamente cópias reversas de strings existentes de forma rápida e eficiente.

Conhecer essas ferramentas e técnicas para reverter strings em Python ajudará você a melhorar sua proficiência como desenvolvedor Python.

Neste tutorial, você aprenderá como:

  • Construir rapidamente strings reversas usando slicing.
  • Criar cópias reversas de strings existentes usando reversed() e .join().
  • Usar iteração e recursão para reverter strings manualmente.
  • Realizar iteração reversa sobre suas strings.
  • Ordenar suas strings em ordem reversa usando sorted().

Para tirar o máximo deste tutorial, você deve conhecer os conceitos básicos de strings, loops for e while, e recursão.

Reversão de Strings com Ferramentas Básicas do Python

Trabalhar com strings em Python em ordem reversa pode ser necessário em algumas situações específicas. Por exemplo, suponha que você tenha uma string “ABCDEF” e deseje uma maneira rápida de revertê-la para obter “FEDCBA”. Quais ferramentas do Python você pode usar para ajudar?

Strings são imutáveis em Python, então reverter uma string existente “no lugar” não é possível. Você precisará criar cópias reversas das strings desejadas para atender aos requisitos.

O Python fornece duas maneiras simples de reverter strings. Como as strings são sequências, elas podem ser indexadas, fatiadas e iteradas. Essas características permitem que você use o slicing para gerar diretamente uma cópia de uma string em ordem reversa. A segunda opção é usar a função embutida reversed() para criar um iterador que retorna os caracteres de uma string de entrada em ordem reversa.

Revertendo Strings Através de Slicing

O slicing é uma técnica útil que permite extrair itens de uma sequência usando diferentes combinações de índices inteiros conhecidos como offsets.

string = "ABCDEF"
reversed_string = string[::-1]
print(reversed_string)

Saída:

FEDCBA

Usando o slicing [::-1], você pode criar uma cópia reversa da string original. O -1 indica que você está percorrendo a sequência em ordem reversa.

Revertendo Strings com .join() e reversed()

Outra maneira de reverter uma string é usando a função reversed() em conjunto com o método .join().

string = "ABCDEF"
reversed_string = ''.join(reversed(string))
print(reversed_string)

Saída:

FEDCBA

Primeiro, a função reversed() retorna um iterador que percorre a sequência em ordem reversa. O método .join() então concatena os caracteres do iterador em uma única string.

Gerando Strings Reversas Manualmente

Além das ferramentas básicas, você também pode gerar strings reversas manualmente. Isso pode ser útil quando você deseja entender melhor o processo de reversão ou precisa de uma lógica personalizada para reverter suas strings.

Revertendo Strings em um Loop

Um método simples para reverter uma string em um loop é percorrer os caracteres da string original em ordem reversa e concatená-los em uma nova string reversa.

string = "ABCDEF"
reversed_string = ""
for char in string[::-1]:
reversed_string += char
print(reversed_string)

Saída:

FEDCBA

Nesse exemplo, usamos o slicing [::-1] para percorrer os caracteres da string em ordem reversa.Em cada iteração, concatenamos o caractere atual à nova string reversa.

Revertendo Strings com Recursão

Um método mais avançado para reverter uma string é usando recursão. A recursão é um conceito poderoso em programação que envolve a chamada de uma função a si mesma.

def reverse_string(string):
if len(string) == 0:
return string
else:
return reverse_string(string[1:]) + string[0]
string = "ABCDEF"
reversed_string = reverse_string(string)
print(reversed_string)

Saída:

FEDCBA

Neste exemplo, a função reverse_string() é recursiva. Ela recebe uma string como argumento e verifica se a string está vazia. Se estiver vazia, retorna a própria string. Caso contrário, a função chama a si mesma passando a string a partir do segundo caractere (string[1:]) e adiciona o primeiro caractere (string[0]) ao final da string resultante da recursão.

Usando reduce() para Reverter Strings

Outra abordagem para gerar uma string reversa é usar a função reduce() do módulo functools.

from functools import reduce
string = "ABCDEF"
reversed_string = reduce(lambda x, y: y + x, string)
print(reversed_string)

Saída:

FEDCBA

Neste exemplo, usamos a função reduce() juntamente com uma função lambda para inverter a ordem dos caracteres da string original.

Iterando por Strings em Ordem Reversa

Em algumas situações, você pode querer iterar por uma string em ordem reversa. O Python fornece duas maneiras de realizar isso.

A Função reversed() Embutida

Você pode usar a função reversed() para criar um iterador que percorre uma sequência em ordem reversa.

string = "ABCDEF"
for char in reversed(string):
print(char)

Saída:

F
E
D
C
B
A

Neste exemplo, usamos a função reversed() para criar um iterador que percorre a string em ordem reversa. Em cada iteração, o próximo caractere da sequência é retornado e impresso.

O Operador de Slicing [::-1]

Outra maneira de iterar por uma string em ordem reversa é usando o operador de slicing [::-1].

string = "ABCDEF"
for char in string[::-1]:
print(char)

Saída:

F
E
D
C
B
A

Nesse exemplo, usamos o slicing [::-1] para percorrer os caracteres da string em ordem reversa. Em cada iteração, o próximo caractere da sequência é retornado e impresso.

Criando uma String Reversível Personalizada

Você também pode criar uma classe personalizada que represente uma string reversível. Essa classe pode ter métodos especiais que permitem inverter a string novamente ou executar outras operações específicas.

class ReversibleString:
def __init__(self, string):
self.string = string
def reverse(self):
return self.string[::-1]
def __str__(self):
return self.string
string = ReversibleString("ABCDEF")
reversed_string = string.reverse()
print(reversed_string)

Saída:

FEDCBA

Neste exemplo, criamos uma classe ReversibleString com um método reverse() que retorna a string original em ordem reversa usando o slicing. Também definimos o método __str__() para que a classe possa ser convertida em uma string quando necessário.

Ordenando Strings Python em Ordem Reversa

Além de reverter uma única string, você também pode ordenar um conjunto de strings em ordem reversa usando a função sorted().

strings = ["ABC", "DEF", "XYZ"]
reversed_strings = sorted(strings, reverse=True)
print(reversed_strings)

Saída:

['XYZ', 'DEF', 'ABC']

Neste exemplo, usamos a função sorted() para ordenar a lista de strings em ordem reversa passando o argumento reverse=True. Isso faz com que as strings sejam ordenadas do maior para o menor, resultando em uma lista de strings em ordem reversa.

Conclusão

Neste tutorial, você aprendeu diferentes maneiras de reverter strings em Python. Utilizando as ferramentas básicas do Python, você pode usar o slicing para obter rapidamente uma cópia reversa de uma string ou a função reversed() em conjunto com .join(). Além disso, você aprendeu como gerar strings reversas manualmente usando loop, recursão e reduce(). Também vimos como iterar por strings em ordem reversa usando a função reversed() embutida e o operador de slicing [::-1]. Por fim, exploramos como criar uma classe personalizada para representar strings reversíveis e como ordenar um conjunto de strings em ordem reversa usando sorted().

Agora você tem todas as ferramentas necessárias para trabalhar com strings reversas em Python. Use essas técnicas em seus projetos para melhorar sua eficiência e habilidades como desenvolvedor Python.