logo

Come scambiare due caratteri in una stringa in Python?

In questo articolo, discuteremo come scambiare due caratteri in una stringa. Esistono vari approcci che aiutano a capire come scambiare due caratteri in una stringa.

Approccio 1: utilizzo del metodo list() e join()

Se vogliamo scambiare due caratteri in una stringa, possiamo usare il elenco() E giuntura() metodo.

Esempio:

stringa all'oggetto json
 # 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) 

Produzione:

 hewlo lorld 

Spiegazione:

Nel codice sopra, definiamo innanzitutto la stringa di input come 'Ciao mondo' . Successivamente, convertiamo la stringa in un elenco di caratteri utilizzando il file elenco() metodo. Successivamente, usiamo spacchettamento della tupla per scambiare i caratteri in indice 2 E indice 6 nella lista. Infine, riconvertiamo l'elenco in una stringa utilizzando il comando giuntura() metodo e restituisce la nuova stringa

Approccio 2: utilizzo dell'affettamento e della concatenazione

Se vogliamo scambiare due caratteri in una stringa, possiamo usare il affettare E concatenazione metodo.

Esempio:

 # 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) 

Produzione:

 hewlo lorld 

Spiegazione:

In questo approccio, utilizziamo taglio delle corde E concatenazione per scambiare i caratteri. Tagliamo la corda in quattro parti: la sottostringa prima del primo carattere da scambiare (stringa[:2]) , il primo carattere scambiato (stringa[6]) , la sottostringa tra i caratteri scambiati (stringa[3:6]) , il secondo carattere scambiato (stringa[2]) e la sottostringa dopo il secondo carattere scambiato (stringa[7:]) . Successivamente, concateniamo queste sottostringhe nell'ordine desiderato per creare la nuova stringa.

Approccio 3: utilizzo di una lista di comprensione

Se vogliamo scambiare due caratteri in una stringa, possiamo usare il comprensione delle liste metodo.

Esempio:

 # 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) 

Produzione:

 hewlo lorld 

Spiegazione:

In questo approccio, creiamo un elenco di caratteri utilizzando una comprensione di elenco che esegue un'iterazione sugli indici della stringa di input. Usiamo un'espressione condizionale all'interno della comprensione dell'elenco per scambiare i caratteri indice 2 E indice 6 .

L'espressione stringa[6 se i == 2 altrimenti 2] restituisce il carattere a indice 6 se l'indice corrente è 2 e restituisce il carattere a indice 2 se l'indice corrente è 6 . Altrimenti, restituisce il carattere originale all'indice corrente. Successivamente, riconvertiamo l'elenco di caratteri in una stringa utilizzando il comando metodo join() e genera la nuova stringa.

Questo approccio potrebbe essere meno efficiente degli approcci precedenti perché crea un nuovo elenco di caratteri, ma può essere utile in situazioni in cui la comprensione dell'elenco è più comoda o intuitiva da utilizzare.

Approccio 4: utilizzo del tipo integrato 'bytearray'.

Se vogliamo scambiare due caratteri in una stringa, possiamo usare il bytearray metodo.

Esempio:

 # 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) 

Produzione:

 hewlo lorld 

Spiegazione:

In questo approccio, convertiamo prima la stringa di input in a bytearray usando il bytearray() funzione incorporata. Successivamente specifichiamo il 'utf-8' encoding per convertire la stringa in byte, quindi scambiamo i due caratteri in indice 2 E indice 6 accedendo direttamente agli elementi corrispondenti nel file bytearray . Infine, convertiamo il file bytearray tornare a una stringa utilizzando il comando decodificare() metodo e restituisce la nuova stringa.

Questo approccio è efficiente perché utilizza a bytearray mutabile invece di creare una nuova stringa o elenco.