logo

Як поміняти місцями два символи в рядку в python?

У цій статті ми обговоримо, як поміняти місцями два символи в рядку. Існують різні підходи, які допоможуть зрозуміти, як ми можемо поміняти місцями два символи в рядку.

Підхід 1: використання методу list() і join().

Якщо ми хочемо поміняти місцями два символи в рядку, ми можемо використати список() і приєднатися() метод.

приклад:

кат тимпф вага
 # 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 .

Вираз string[6 if i == 2 else 2] повертає символ at індекс 6 якщо поточний індекс є 2 і повертає символ at індекс 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 шляхом прямого доступу до відповідних елементів у bytearray . Нарешті, ми перетворюємо байтовий масив повернутися до рядка за допомогою декодувати() і виведіть новий рядок.

Цей підхід є ефективним, оскільки він використовує a змінний байтовий масив замість створення нового рядка або списку.