logo

Ako vymeniť dva znaky v reťazci v pythone?

V tomto článku budeme diskutovať o tom, ako vymeniť dva znaky v reťazci. Existujú rôzne prístupy, ktoré nám pomôžu pochopiť, ako môžeme zameniť dva znaky v reťazci.

Prístup 1: Použitie metódy list() a join().

Ak chceme vymeniť dva znaky v reťazci, môžeme použiť zoznam() a pripojiť sa () metóda.

Príklad:

protokoly vrstvy dátového spojenia
 # 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) 

Výkon:

 hewlo lorld 

Vysvetlenie:

Vo vyššie uvedenom kóde najskôr definujeme vstupný reťazec ako 'ahoj svet' . Potom skonvertujeme reťazec na zoznam znakov pomocou zoznam() metóda. Ďalej použijeme tuple rozbaľovanie vymeniť postavy na index 2 a index 6 v zozname. Nakoniec zoznam skonvertujeme späť na reťazec pomocou pripojiť sa () metódu a vypíšte nový reťazec

Prístup 2: Použitie krájania a zreťazenia

Ak chceme vymeniť dva znaky v reťazci, môžeme použiť krájanie a zreťazenie metóda.

Príklad:

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

Výkon:

 hewlo lorld 

Vysvetlenie:

V tomto prístupe používame krájanie struny a zreťazenie na výmenu postáv. Šnúrku rozrežeme na štyri časti: podreťazec pred prvým znakom, ktorý sa má vymeniť (reťazec[:2]) , prvý vymenený znak (reťazec[6]) , podreťazec medzi vymenenými znakmi (reťazec[3:6]) , druhá vymenená postava (reťazec[2]) a podreťazec za druhým vymeneným znakom (reťazec[7:]) . Potom tieto podreťazce zreťazíme v požadovanom poradí, aby sme vytvorili nový reťazec.

Prístup 3: Používanie porozumenia zoznamu

Ak chceme vymeniť dva znaky v reťazci, môžeme použiť porozumenie zoznamu metóda.

Príklad:

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

Výkon:

 hewlo lorld 

Vysvetlenie:

V tomto prístupe vytvoríme zoznam znakov pomocou porozumenia zoznamu, ktorý iteruje cez indexy vstupného reťazca. Na výmenu znakov používame podmienený výraz v rámci porozumenia zoznamu index 2 a index 6 .

Výraz reťazec[6, ak i == 2 inak 2] vráti znak at index 6 ak je aktuálny index 2 a vráti znak at index 2 ak je aktuálny index 6 . V opačnom prípade vráti pôvodný znak v aktuálnom indexe. Potom skonvertujeme zoznam znakov späť na reťazec pomocou join() metóda a vypíšte nový reťazec.

Tento prístup môže byť menej efektívny ako predchádzajúce prístupy, pretože vytvára nový zoznam znakov, ale môže byť užitočný v situáciách, keď je porozumenie zoznamu pohodlnejšie alebo intuitívnejšie.

Prístup 4: Použitie vstavaného typu 'bytearray'

Ak chceme vymeniť dva znaky v reťazci, môžeme použiť byearray metóda.

Príklad:

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

Výkon:

 hewlo lorld 

Vysvetlenie:

Pri tomto prístupe najskôr skonvertujeme vstupný reťazec na a byearray pomocou bytearray() vstavaná funkcia. Potom špecifikujeme 'utf-8' kódovanie na konverziu reťazca na bajt a potom zameníme dva znaky na index 2 a index 6 priamym prístupom k zodpovedajúcim prvkom v byearray . Nakoniec prevedieme byearray späť na reťazec pomocou dekódovať () metódu a vypíšte nový reťazec.

Tento prístup je efektívny, pretože využíva a meniteľný bytearray namiesto vytvárania nového reťazca alebo zoznamu.