logo

Kako zamenjati dva znaka v nizu v pythonu?

V tem članku bomo razpravljali o tem, kako zamenjati dva znaka v nizu. Obstajajo različni pristopi, ki nam bodo pomagali razumeti, kako lahko zamenjamo dva znaka v nizu.

Pristop 1: Uporaba metode list() in join().

Če želimo zamenjati dva znaka v nizu, lahko uporabimo seznam() in pridruži se() metoda.

primer:

kateri meseci so v q3
 # 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) 

Izhod:

 hewlo lorld 

Pojasnilo:

V zgornji kodi najprej definiramo vhodni niz kot 'Pozdravljen, svet' . Po tem pretvorimo niz v seznam znakov z uporabo seznam() metoda. Nato uporabimo razpakiranje tuple za zamenjavo znakov indeks 2 in indeks 6 na seznamu. Končno pretvorimo seznam nazaj v niz z uporabo pridruži se() metodo in izpišite nov niz

Pristop 2: Uporaba rezanja in veriženja

Če želimo zamenjati dva znaka v nizu, lahko uporabimo rezanje in veriženje metoda.

primer:

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

Izhod:

 hewlo lorld 

Razlaga:

Pri tem pristopu uporabljamo rezanje strun in veriženje da zamenjate znake. Vrvico narežemo na štiri dele: v podniz pred prvim znakom, ki ga je treba zamenjati (niz[:2]) , prvi zamenjani znak (niz [6]) , podniz med zamenjanimi znaki (niz [3:6]) , drugi zamenjani znak (niz [2]) in podniz za drugim zamenjanim znakom (niz [7:]) . Nato te podnize združimo v želenem vrstnem redu, da ustvarimo nov niz.

Pristop 3: Uporaba seznamskega razumevanja

Če želimo zamenjati dva znaka v nizu, lahko uporabimo razumevanje seznama metoda.

primer:

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

Izhod:

 hewlo lorld 

Pojasnilo:

Pri tem pristopu ustvarimo seznam znakov z uporabo razumevanja seznama, ki ponavlja indekse vhodnega niza. Za zamenjavo znakov uporabljamo pogojni izraz znotraj razumevanja seznama indeks 2 in indeks 6 .

Izraz niz[6 if i == 2 else 2] vrne znak pri indeks 6 če je trenutni indeks 2 in vrne znak pri indeks 2 če je trenutni indeks 6 . V nasprotnem primeru vrne izvirni znak pri trenutnem indeksu. Po tem pretvorimo seznam znakov nazaj v niz z uporabo metoda join(). in izpiši nov niz.

Ta pristop je morda manj učinkovit od prejšnjih pristopov, ker ustvari nov seznam znakov, vendar je lahko uporaben v primerih, ko je razumevanje seznama bolj priročno ali intuitivno za uporabo.

Pristop 4: Uporaba vgrajenega tipa 'bytearray'

Če želimo zamenjati dva znaka v nizu, lahko uporabimo bytearray metoda.

primer:

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

Izhod:

 hewlo lorld 

Pojasnilo:

Pri tem pristopu najprej pretvorimo vhodni niz v a bytearray uporabljati bytearray() vgrajeno funkcijo. Po tem določimo 'utf-8' kodiranje za pretvorbo niza v bajt, nato pa oba znaka zamenjamo pri indeks 2 in indeks 6 z neposrednim dostopom do ustreznih elementov v bytearray . Na koncu pretvorimo bytearray nazaj na niz z uporabo dekodirati() in izpišite nov niz.

Ta pristop je učinkovit, ker uporablja a spremenljiv bytearray namesto ustvarjanja novega niza ali seznama.