logo

Cum să schimb două caractere într-un șir în python?

În acest articol, vom discuta cum să schimbați două caractere într-un șir. Există diverse abordări care ne vor ajuta să înțelegem cum putem schimba două caractere dintr-un șir.

Abordarea 1: Folosind metoda list() și join().

Dacă vrem să schimbăm două caractere dintr-un șir, putem folosi listă() și a te alatura() metodă.

Exemplu:

cum se convertesc un întreg în șir de caractere java
 # 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) 

Ieșire:

 hewlo lorld 

Explicaţie:

În codul de mai sus, definim mai întâi șirul de intrare ca 'Salut Lume' . După aceea, convertim șirul într-o listă de caractere folosind listă() metodă. În continuare, folosim despachetarea tuplului pentru a schimba personajele la indicele 2 și indicele 6 În listă. În cele din urmă, convertim lista înapoi într-un șir folosind a te alatura() metoda și scoateți noul șir

Abordarea 2: Folosind felierea și concatenarea

Dacă vrem să schimbăm două caractere dintr-un șir, putem folosi felierea și concatenare metodă.

Exemplu:

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

Ieșire:

 hewlo lorld 

Explicație:

În această abordare, folosim feliere de sfoară și concatenare pentru a schimba personajele. Tăiem sfoara în patru părți: the subșir înainte de primul caracter care trebuie schimbat (șir[:2]) , primul caracter schimbat (șir[6]) , subșirul dintre caracterele schimbate (șir[3:6]) , al doilea caracter schimbat (șir[2]) , și subșirul după al doilea caracter schimbat (șir[7:]) . După aceea, concatenăm aceste subșiruri în ordinea dorită pentru a crea noul șir.

Abordarea 3: Utilizarea unei liste de înțelegere

Dacă vrem să schimbăm două caractere dintr-un șir, putem folosi înțelegerea listei metodă.

Exemplu:

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

Ieșire:

 hewlo lorld 

Explicaţie:

În această abordare, creăm o listă de caractere utilizând o listă de înțelegere care iterează peste indicii șirului de intrare. Folosim o expresie condiționată în lista de înțelegere pentru a schimba caracterele la indicele 2 și indicele 6 .

Expresia șir[6 dacă i == 2 altfel 2] returnează personajul la indicele 6 dacă indicele curent este 2 , și returnează caracterul la indicele 2 dacă indicele curent este 6 . În caz contrar, returnează caracterul original la indexul curent. După aceea, convertim lista de caractere înapoi într-un șir folosind metoda join(). și scoateți noul șir.

Această abordare poate fi mai puțin eficientă decât abordările anterioare, deoarece creează o nouă listă de caractere, dar poate fi utilă în situațiile în care înțelegerea listei este mai convenabilă sau mai intuitivă de utilizat.

Abordarea 4: Utilizarea tipului încorporat „bytearray”.

Dacă vrem să schimbăm două caractere dintr-un șir, putem folosi bytearray metodă.

Exemplu:

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

Ieșire:

 hewlo lorld 

Explicaţie:

În această abordare, convertim mai întâi șirul de intrare în a bytearray folosind bytearray() functie incorporata. După aceea, precizăm „utf-8” codificare pentru a converti șirul în octet și apoi schimbăm cele două caractere la indicele 2 și indicele 6 prin accesarea directă a elementelor corespunzătoare din bytearray . În cele din urmă, convertim bytearray înapoi la un șir folosind decoda () metoda și scoateți noul șir.

Această abordare este eficientă deoarece utilizează a bytearray mutabil în loc să creeze un șir sau o listă nouă.