この記事では、文字列内の 2 つの文字を交換する方法について説明します。文字列内の 2 つの文字を交換する方法を理解するのに役立つさまざまなアプローチがあります。
アプローチ 1: list() メソッドと join() メソッドを使用する
文字列内の 2 つの文字を交換したい場合は、 リスト() そして 参加する() 方法。
例:
Javaで始まる
# 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: スライスと連結を使用する
文字列内の 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
説明:
このアプローチでは、次を使用します。 文字列のスライス そして 連結 文字を交換します。文字列を 4 つの部分にスライスします。 部分文字列 交換される最初の文字の前 (文字列[:2]) 、最初に交換された文字 (文字列[6]) 、交換された文字間の部分文字列 (文字列[3:6]) 、2番目の交換された文字 (文字列[2]) 、および 2 番目に交換された文字の後の部分文字列 (文字列[7:]) 。その後、これらの部分文字列を希望の順序で連結して新しい文字列を作成します。
アプローチ 3: リスト内包表記の使用
文字列内の 2 つの文字を交換したい場合は、 リスト内包表記 方法。
例:
# 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' 組み込み型を使用する
文字列内の 2 つの文字を交換したい場合は、 バイト配列 方法。
例:
# 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
説明:
このアプローチでは、まず入力文字列を バイト配列 を使用して bytearray() 組み込み関数。その後、次のように指定します。 「utf-8」 エンコーディングを使用して文字列をバイトに変換し、次の位置で 2 つの文字を交換します。 インデックス2 そして インデックス6 内の対応する要素に直接アクセスすることで、 バイト配列 。最後に、 バイト配列 を使用して文字列に戻ります デコード() メソッドを実行し、新しい文字列を出力します。
このアプローチは、 可変バイト配列 新しい文字列またはリストを作成する代わりに。