logo

Com intercanviar dos caràcters en una cadena a Python?

En aquest article, parlarem de com intercanviar dos caràcters en una cadena. Hi ha diversos enfocaments que ajudaran a entendre com podem intercanviar dos caràcters en una cadena.

Enfocament 1: Ús del mètode list() i join().

Si volem intercanviar dos caràcters en una cadena, podem utilitzar el llista () i uneix-te () mètode.

Exemple:

Powershell comentari multilínia
 # 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) 

Sortida:

 hewlo lorld 

Explicació:

Al codi anterior, primer definim la cadena d'entrada com a 'Hola món' . Després d'això, convertim la cadena en una llista de caràcters utilitzant el llista () mètode. A continuació, fem servir desembalatge de tuple per intercanviar els personatges a índex 2 i índex 6 a la llista. Finalment, tornem a convertir la llista en una cadena utilitzant el uneix-te () mètode i emet la nova cadena

Enfocament 2: utilitzar el tall i la concatenació

Si volem intercanviar dos caràcters en una cadena, podem utilitzar el tallant i concatenació mètode.

Exemple:

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

Sortida:

 hewlo lorld 

Explicació:

En aquest enfocament, fem servir tall de corda i concatenació per intercanviar els personatges. Tallem la corda en quatre parts: la subcadena abans del primer caràcter a intercanviar (cadena[:2]) , el primer caràcter intercanviat (cadena[6]) , la subcadena entre els caràcters intercanviats (cadena[3:6]) , el segon caràcter intercanviat (cadena[2]) , i la subcadena després del segon caràcter intercanviat (cadena[7:]) . Després d'això, concatenem aquestes subcadenes en l'ordre desitjat per crear la nova cadena.

Enfocament 3: Ús d'una llista de comprensió

Si volem intercanviar dos caràcters en una cadena, podem utilitzar el comprensió de llista mètode.

Exemple:

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

Sortida:

 hewlo lorld 

Explicació:

En aquest enfocament, creem una llista de caràcters mitjançant una comprensió de llista que itera sobre els índexs de la cadena d'entrada. Utilitzem una expressió condicional dins de la comprensió de la llista per intercanviar els caràcters a índex 2 i índex 6 .

L'expressió cadena[6 si i == 2 sinó 2] retorna el personatge a índex 6 si l'índex actual és 2 , i retorna el caràcter a índex 2 si l'índex actual és 6 . En cas contrari, retorna el caràcter original a l'índex actual. Després d'això, tornem a convertir la llista de caràcters en una cadena utilitzant el mètode join(). i emet la nova cadena.

Aquest enfocament pot ser menys eficient que els enfocaments anteriors perquè crea una nova llista de caràcters, però pot ser útil en situacions en què la comprensió de la llista és més còmoda o intuïtiva d'utilitzar.

Enfocament 4: utilitzant el tipus integrat 'bytearray'.

Si volem intercanviar dos caràcters en una cadena, podem utilitzar el bytearray mètode.

Exemple:

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

Sortida:

 hewlo lorld 

Explicació:

En aquest enfocament, primer convertim la cadena d'entrada a a bytearray utilitzant el bytearray () funció integrada. Després d'això, especifiquem el 'utf-8' codificació per convertir la cadena en byte, i després intercanviem els dos caràcters a índex 2 i índex 6 accedint directament als elements corresponents al bytearray . Finalment, convertim el bytearray tornar a una cadena utilitzant el descodificar () mètode i emet la nova cadena.

Aquest enfocament és eficient perquè utilitza a bytearray mutable en lloc de crear una cadena o llista nova.