logo

Како заменити два знака у низу у Питхон-у?

У овом чланку ћемо разговарати о томе како да замените два знака у низу. Постоје различити приступи који ће помоћи да се разуме како можемо да заменимо два знака у низу.

Приступ 1: Коришћење метода листе() и јоин().

Ако желимо да заменимо два знака у низу, можемо да користимо листа() и придружити() методом.

Пример:

стринг у јсон објекат
 # 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) 

Излаз:

 hewlo lorld 

Објашњење:

У коду изнад, прво дефинишемо улазни низ као 'Здраво Свете' . Након тога, конвертујемо стринг у листу знакова користећи листа() методом. Следеће, користимо тупле распакивање за замену ликова индекс 2 и индекс 6 на листи. Коначно, конвертујемо листу назад у стринг користећи придружити() методу и излазе нови стринг

Приступ 2: Коришћење сечења и спајања

Ако желимо да заменимо два знака у низу, можемо да користимо сечење и конкатенација методом.

Пример:

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

Излаз:

 hewlo lorld 

Објашњење:

У овом приступу користимо резање струна и конкатенација за замену ликова. Конац сечемо на четири дела: на подниз пре првог знака који треба заменити (стринг[:2]) , први замењени знак (стринг[6]) , подниз између замењених знакова (стринг[3:6]) , други замењени знак (стринг[2]) , и подниз после другог замењеног знака (стринг[7:]) . Након тога, спајамо ове подстрингове у жељеном редоследу да бисмо креирали нови стринг.

Приступ 3: Коришћење разумевања листе

Ако желимо да заменимо два знака у низу, можемо да користимо разумевање листе методом.

Пример:

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

Излаз:

 hewlo lorld 

Објашњење:

У овом приступу, креирамо листу знакова користећи разумевање листе које се понавља преко индекса улазног низа. Користимо условни израз у оквиру разумевања листе за замену знакова индекс 2 и индекс 6 .

Израз стринг[6 иф и == 2 елсе 2] враћа карактер на индекс 6 ако је тренутни индекс 2 , и враћа знак ат индекс 2 ако је тренутни индекс 6 . У супротном, враћа оригинални знак у тренутном индексу. Након тога, конвертујемо листу знакова назад у стринг користећи јоин() метода и избаците нови стринг.

Овај приступ може бити мање ефикасан од претходних јер креира нову листу знакова, али може бити користан у ситуацијама када је разумевање листе погодније или интуитивније за коришћење.

Приступ 4: Коришћење уграђеног типа 'битеарраи'

Ако желимо да заменимо два знака у низу, можемо да користимо битеарраи методом.

Пример:

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

Излаз:

 hewlo lorld 

Објашњење:

У овом приступу прво конвертујемо улазни низ у а битеарраи помоћу битеарраи() уграђена функција. Након тога, прецизирамо 'утф-8' кодирање да претворимо стринг у бајт, а затим заменимо два знака на индекс 2 и индекс 6 директним приступом одговарајућим елементима у битеарраи . Коначно, претварамо битеарраи назад на низ користећи децоде() методу и излазе нови стринг.

Овај приступ је ефикасан јер користи а променљиви бајт низ уместо стварања новог стринга или листе.