logo

Kaip sukeisti du simbolius eilutėje python?

Šiame straipsnyje aptarsime, kaip sukeisti du simbolius eilutėje. Yra įvairių metodų, kurie padės suprasti, kaip galime sukeisti du simbolius eilutėje.

1 metodas: naudokite list() ir join() metodus

Jei norime sukeisti du simbolius eilutėje, galime naudoti sąrašas () ir prisijungti () metodas.

Pavyzdys:

powershell didesnis nei arba lygus
 # 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) 

Išvestis:

 hewlo lorld 

Paaiškinimas:

Aukščiau pateiktame kode pirmiausia apibrėžiame įvesties eilutę kaip 'Labas pasauli' . Po to eilutę konvertuojame į simbolių sąrašą naudodami sąrašas () metodas. Toliau mes naudojame tuple išpakavimas norėdami apsikeisti simboliais 2 indeksas ir 6 indeksas sąraše. Galiausiai paverčiame sąrašą atgal į eilutę naudodami prisijungti () metodą ir išvesti naują eilutę

2 metodas: pjaustymas ir sujungimas

Jei norime sukeisti du simbolius eilutėje, galime naudoti pjaustymas ir sujungimas metodas.

Pavyzdys:

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

Išvestis:

 hewlo lorld 

Paaiškinimas:

Šiuo požiūriu mes naudojame stygų pjaustymas ir sujungimas pasikeisti simboliais. Virvelę supjaustome į keturias dalis: poeilutė prieš pirmąjį keičiamą simbolį (eilutė[:2]) , pirmasis pakeistas simbolis (eilutė[6]) , poeilutė tarp pakeistų simbolių (eilutė[3:6]) , antrasis simbolis buvo pakeistas (eilutė[2]) , ir poeilutė po antrojo pakeisto simbolio (eilutė[7:]) . Po to šias eilutes sujungiame norima tvarka, kad sukurtume naują eilutę.

3 metodas: Sąrašo supratimas

Jei norime sukeisti du simbolius eilutėje, galime naudoti sąrašo supratimas metodas.

Pavyzdys:

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

Išvestis:

 hewlo lorld 

Paaiškinimas:

Taikydami šį metodą, mes sukuriame simbolių sąrašą naudodami sąrašo supratimą, kuris kartojasi per įvesties eilutės indeksus. Sąrašo supratimo ribose naudojame sąlyginę išraišką, kad pakeistume simbolius 2 indeksas ir 6 indeksas .

Išsireiškimas eilutė[6, jei i == 2 dar 2] grąžina personažą adresu 6 indeksas jei dabartinis indeksas yra 2 ir grąžina simbolį adresu 2 indeksas jei dabartinis indeksas yra 6 . Kitu atveju jis grąžina pradinį dabartinio indekso simbolį. Po to simbolių sąrašą konvertuojame atgal į eilutę naudodami prisijungimo () metodas ir išvesti naują eilutę.

Šis metodas gali būti mažiau efektyvus nei ankstesni metodai, nes sukuriamas naujas simbolių sąrašas, tačiau jis gali būti naudingas tais atvejais, kai sąrašo supratimas yra patogesnis arba intuityvesnis.

4 metodas: naudojant įtaisytąjį „bytearray“ tipą

Jei norime sukeisti du simbolius eilutėje, galime naudoti bytearray metodas.

Pavyzdys:

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

Išvestis:

 hewlo lorld 

Paaiškinimas:

Taikydami šį metodą, pirmiausia konvertuojame įvesties eilutę į a bytearray naudojant bytearray () įmontuota funkcija. Po to mes nurodome 'utf-8' kodavimą, norėdami konvertuoti eilutę į baitus, tada sukeiskite du simbolius at 2 indeksas ir 6 indeksas tiesiogiai pasiekiant atitinkamus elementus bytearray . Galiausiai konvertuojame bytearray atgal į eilutę naudodami dekoduoti () metodą ir išvesti naują eilutę.

Šis metodas yra efektyvus, nes jame naudojamas a kintamasis bytearray užuot sukūrę naują eilutę ar sąrašą.