logo

Jak zamienić dwa znaki w ciągu w Pythonie?

W tym artykule omówimy, jak zamienić dwa znaki w ciągu znaków. Istnieją różne podejścia, które pomogą zrozumieć, w jaki sposób możemy zamienić dwa znaki w ciągu.

Podejście 1: Użycie metod list() i Join().

Jeśli chcemy zamienić dwa znaki w ciągu, możemy użyć lista() I dołączyć() metoda.

Przykład:

wady bankowości internetowej
 # 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) 

Wyjście:

 hewlo lorld 

Wyjaśnienie:

W powyższym kodzie najpierw definiujemy ciąg wejściowy jako 'Witaj świecie' . Następnie konwertujemy ciąg znaków na listę znaków za pomocą metody lista() metoda. Dalej używamy rozpakowywanie krotki aby zamienić znaki na indeks 2 I indeks 6 na liście. Na koniec konwertujemy listę z powrotem na ciąg znaków za pomocą metody dołączyć() metodę i wypisz nowy ciąg

Podejście 2: Stosowanie krojenia i łączenia

Jeśli chcemy zamienić dwa znaki w ciągu, możemy użyć krajanie na plastry I powiązanie metoda.

Przykład:

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

Wyjście:

 hewlo lorld 

Wyjaśnienie:

W tym podejściu używamy przecięcie sznurka I powiązanie aby zamienić znaki. Przecinamy sznurek na cztery części: podciąg przed pierwszym znakiem, który ma zostać zamieniony (ciąg [:2]) , pierwszy zamieniony znak (ciąg [6]) , podciąg pomiędzy zamienionymi znakami (ciąg [3:6]) , drugi zamieniony znak (ciąg [2]) i podciąg po drugim zamienionym znaku (ciąg [7:]) . Następnie łączymy te podciągi w żądanej kolejności, aby utworzyć nowy ciąg.

Podejście 3: Korzystanie ze zrozumienia list

Jeśli chcemy zamienić dwa znaki w ciągu, możemy użyć zrozumienie listy metoda.

Przykład:

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

Wyjście:

 hewlo lorld 

Wyjaśnienie:

W tym podejściu tworzymy listę znaków przy użyciu rozumienia listy, które iteruje po indeksach ciągu wejściowego. Do zamiany znaków używamy wyrażenia warunkowego w rozumieniu listy indeks 2 I indeks 6 .

Ekspresja string[6 jeśli i == 2 else 2] zwraca znak w indeks 6 jeśli bieżący indeks wynosi 2 i zwraca znak w indeks 2 jeśli bieżący indeks wynosi 6 . W przeciwnym razie zwraca oryginalny znak pod bieżącym indeksem. Następnie konwertujemy listę znaków z powrotem na ciąg znaków za pomocą metody metoda Join(). i wyprowadź nowy ciąg.

To podejście może być mniej wydajne niż poprzednie, ponieważ tworzy nową listę znaków, ale może być przydatne w sytuacjach, gdy zrozumienie listy jest wygodniejsze lub intuicyjne w użyciu.

Podejście 4: Używanie wbudowanego typu „bytearray”.

Jeśli chcemy zamienić dwa znaki w ciągu, możemy użyć bajtearray metoda.

Przykład:

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

Wyjście:

 hewlo lorld 

Wyjaśnienie:

W tym podejściu najpierw konwertujemy ciąg wejściowy na a bajtarray używając bajtearray() wbudowana funkcja. Następnie określamy „utf-8” encoding, aby przekonwertować ciąg na bajt, a następnie zamieniamy dwa znaki w indeks 2 I indeks 6 poprzez bezpośredni dostęp do odpowiednich elementów w pliku bajtearray . Na koniec konwertujemy bajtearray z powrotem do ciągu znaków za pomocą rozszyfrować() metodę i wypisz nowy ciąg.

To podejście jest skuteczne, ponieważ wykorzystuje a zmienna bajtarray zamiast tworzyć nowy ciąg lub listę.