logo

Kuinka vaihtaa kaksi merkkiä merkkijonossa pythonissa?

Tässä artikkelissa keskustelemme kahden merkin vaihtamisesta merkkijonossa. On olemassa erilaisia ​​lähestymistapoja, jotka auttavat ymmärtämään, kuinka voimme vaihtaa kaksi merkkiä merkkijonossa.

Lähestymistapa 1: List()- ja join()-menetelmien käyttäminen

Jos haluamme vaihtaa kaksi merkkiä merkkijonossa, voimme käyttää lista() ja liittyä seuraan() menetelmä.

Esimerkki:

Javaa päivitetään
 # 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) 

Lähtö:

 hewlo lorld 

Selitys:

Yllä olevassa koodissa määritämme ensin syötemerkkijonon muodossa 'Hei maailma' . Tämän jälkeen muunnamme merkkijonon merkkiluetteloksi käyttämällä lista() menetelmä. Seuraavaksi käytämme tupelin purkaminen vaihtaaksesi merkkejä osoitteessa indeksi 2 ja indeksi 6 luettelossa. Lopuksi muunnamme luettelon takaisin merkkijonoksi käyttämällä liittyä seuraan() menetelmä ja tulosta uusi merkkijono

Lähestymistapa 2: Viipalointi ja ketjuttaminen

Jos haluamme vaihtaa kaksi merkkiä merkkijonossa, voimme käyttää viipalointi ja ketjuttaminen menetelmä.

Esimerkki:

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

Lähtö:

 hewlo lorld 

Selitys:

Tässä lähestymistavassa käytämme nauhan viipalointi ja ketjuttaminen vaihtaaksesi hahmoja. Viipaloimme nauhan neljään osaan: alamerkkijono ennen ensimmäistä vaihdettavaa merkkiä (merkkijono[:2]) , ensimmäinen vaihdettu merkki (merkkijono[6]) , vaihdettujen merkkien välinen osamerkkijono (merkkijono[3:6]) , toinen vaihdettu merkki (merkkijono[2]) , ja alimerkkijono toisen vaihdetun merkin jälkeen (merkkijono[7:]) . Tämän jälkeen ketjutamme nämä osamerkkijonot halutussa järjestyksessä uuden merkkijonon luomiseksi.

Lähestymistapa 3: Listan ymmärtäminen

Jos haluamme vaihtaa kaksi merkkiä merkkijonossa, voimme käyttää listan ymmärtäminen menetelmä.

Esimerkki:

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

Lähtö:

 hewlo lorld 

Selitys:

Tässä lähestymistavassa luomme merkkiluettelon käyttämällä luettelon ymmärtämistä, joka toistuu syötemerkkijonon indeksien yli. Käytämme ehdollista lauseketta luettelon ymmärtämisessä merkit vaihtamiseen indeksi 2 ja indeksi 6 .

Ilmaisu merkkijono[6, jos i == 2 muuta 2] palauttaa merkin osoitteessa indeksi 6 jos nykyinen indeksi on 2 , ja palauttaa merkin osoitteessa indeksi 2 jos nykyinen indeksi on 6 . Muussa tapauksessa se palauttaa alkuperäisen merkin nykyisessä indeksissä. Tämän jälkeen muunnamme merkkiluettelon takaisin merkkijonoksi käyttämällä join() -menetelmä ja tulosta uusi merkkijono.

Tämä lähestymistapa voi olla vähemmän tehokas kuin aiemmat lähestymistavat, koska se luo uuden merkkiluettelon, mutta se voi olla hyödyllinen tilanteissa, joissa luettelon ymmärtäminen on kätevämpää tai intuitiivisempaa käyttää.

Lähestymistapa 4: Sisäänrakennetun bytearray-tyypin käyttäminen

Jos haluamme vaihtaa kaksi merkkiä merkkijonossa, voimme käyttää bytearray menetelmä.

Esimerkki:

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

Lähtö:

 hewlo lorld 

Selitys:

Tässä lähestymistavassa muunnamme ensin syötemerkkijonon a:ksi bytearray käyttämällä bytearray() sisäänrakennettu toiminto. Sen jälkeen määritämme 'utf-8' koodaus muuntaaksesi merkkijonon tavuksi, ja sitten vaihdamme kaksi merkkiä at indeksi 2 ja indeksi 6 käyttämällä suoraan vastaavia elementtejä bytearray . Lopuksi muunnamme bytearray takaisin merkkijonoon käyttämällä dekoodaa () menetelmä ja tulosta uusi merkkijono.

Tämä lähestymistapa on tehokas, koska se käyttää a muuttuva bytearray uuden merkkijonon tai luettelon luomisen sijaan.