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ę.