logo

Como trocar dois caracteres em uma string em python?

Neste artigo, discutiremos como trocar dois caracteres em uma string. Existem várias abordagens que ajudarão a entender como podemos trocar dois caracteres em uma string.

Abordagem 1: Usando os métodos list() e join()

Se quisermos trocar dois caracteres em uma string, podemos usar o lista() e juntar() método.

Exemplo:

anaconda vs cobra python
 # Input string string = 'hello world' # Convert string to list of characters char_list = list(string) # Swap characters at index 2 and index 6 char_list[2], char_list[6] = char_list[6], char_list[2] # Convert list back to string new_string = ''.join(char_list) # Output new string print(new_string) 

Saída:

 hewlo lorld 

Explicação:

No código acima, primeiro definimos a string de entrada como 'Olá Mundo' . Depois disso, convertemos a string em uma lista de caracteres usando o lista() método. A seguir, usamos descompactação de tupla para trocar os personagens em índice 2 e índice 6 na lista. Finalmente, convertemos a lista de volta em uma string usando o juntar() método e produza a nova string

Abordagem 2: Usando fatiamento e concatenação

Se quisermos trocar dois caracteres em uma string, podemos usar o fatiamento e concatenação método.

Exemplo:

 # Input string string = 'hello world' # Swap characters at index 2 and index 6 new_string = string[:2] + string[6] + string[3:6] + string[2] + string[7:] # Output new string print(new_string) 

Saída:

 hewlo lorld 

Explicação:

Nesta abordagem, usamos fatiamento de cordas e concatenação para trocar os personagens. Cortamos a corda em quatro partes: a substring antes do primeiro caractere a ser trocado (string[:2]) , o primeiro caractere trocado (string[6]) , a substring entre os caracteres trocados (string[3:6]) , o segundo caractere trocado (string[2]) , e a substring após o segundo caractere trocado (string[7:]) . Depois disso, concatenamos essas substrings na ordem desejada para criar a nova string.

Abordagem 3: Usando uma compreensão de lista

Se quisermos trocar dois caracteres em uma string, podemos usar o compreensão da lista método.

Exemplo:

 # Input string string = 'hello world' # Swap characters at index 2 and index 6 char_list = [string[i] if i not in (2, 6) else string[6 if i == 2 else 2] for i in range(len(string))] # Convert list back to string new_string = ''.join(char_list) # Output new string print(new_string) 

Saída:

 hewlo lorld 

Explicação:

Nesta abordagem, criamos uma lista de caracteres usando uma compreensão de lista que itera sobre os índices da string de entrada. Usamos uma expressão condicional dentro da compreensão da lista para trocar os caracteres em índice 2 e índice 6 .

A expressão string[6 se eu == 2 senão 2] retorna o caractere em índice 6 se o índice atual for 2 , e retorna o caractere em índice 2 se o índice atual for 6 . Caso contrário, retorna o caractere original no índice atual. Depois disso, convertemos a lista de caracteres de volta em uma string usando o método join() e produza a nova string.

Esta abordagem pode ser menos eficiente que as abordagens anteriores porque cria uma nova lista de caracteres, mas pode ser útil em situações onde a compreensão de uma lista é mais conveniente ou intuitiva de usar.

Abordagem 4: Usando o tipo integrado 'bytearray'

Se quisermos trocar dois caracteres em uma string, podemos usar o bytearray método.

Exemplo:

 # Input string string = 'hello world' # Convert string to bytearray byte_array = bytearray(string, 'utf-8') # Swap characters at index 2 and index 6 byte_array[2], byte_array[6] = byte_array[6], byte_array[2] # Convert bytearray back to string new_string = byte_array.decode() # Output new string print(new_string) 

Saída:

 hewlo lorld 

Explicação:

Nesta abordagem, primeiro convertemos a string de entrada em um bytearray usando o bytearray() função integrada. Depois disso, especificamos o 'utf-8' codificação para converter a string em byte e, em seguida, trocamos os dois caracteres em índice 2 e índice 6 acessando diretamente os elementos correspondentes no bytearray . Finalmente, convertemos o bytearray de volta a uma string usando o decodificar() método e produza a nova string.

Esta abordagem é eficiente porque utiliza uma bytearray mutável em vez de criar uma nova string ou lista.