logo

Как да размените два знака в низ в python?

В тази статия ще обсъдим как да разменим два знака в низ. Има различни подходи, които ще ни помогнат да разберем как можем да разменим два знака в низ.

Подход 1: Използване на метод list() и join().

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

Пример:

команда на windows arp
 # 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 if i == 2 else 2] връща знака при индекс 6 ако текущият индекс е 2 и връща знака при индекс 2 ако текущият индекс е 6 . В противен случай връща оригиналния знак в текущия индекс. След това преобразуваме списъка със знаци обратно в низ, използвайки метод join(). и извежда новия низ.

Този подход може да е по-малко ефективен от предишните подходи, защото създава нов списък със знаци, но може да бъде полезен в ситуации, в които разбирането на списък е по-удобно или интуитивно за използване.

Подход 4: Използване на вграден тип „bytearray“.

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

Пример:

 # 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 

Обяснение:

При този подход първо преобразуваме входния низ в a байтов масив използвайки bytearray() вградена функция. След това уточняваме 'utf-8' кодиране, за да преобразуваме низа в байт, и след това разменяме двата знака на индекс 2 и индекс 6 чрез директен достъп до съответните елементи в байтов масив . Накрая преобразуваме байтов масив обратно към низ с помощта на декодирам () метод и извежда новия низ.

Този подход е ефективен, защото използва a променлив байтов масив вместо да създавате нов низ или списък.