Python で 2つの値を交換する
Vaibhav Vaibhav
2023年10月10日
データやプログラミング全般を扱うとき、2つの変数の値を交換しなければならない状況に陥ります。たとえば、a
が 5
を格納し、b
が 25
を格納している場合、a
はスワップ後に 25
を格納し、b
は 5
を格納します。この記事では、2つの変数間で値の交換を実行するために使用できるさまざまな方法について説明します。
Python でタプルスワップを使用して 2つの値をスワップする
Python では、代入式またはタプルスワップを使用して、値にスワップできます。次のコードを参照してください。
a = 5
b = 25
print("Before swapping")
print("a:", a, "b:", b)
a, b = b, a # Swapping
print("After swapping")
print("a:", a, "b:", b)
出力:
Before swapping
a: 5 b: 25
After swapping
a: 25 b: 5
式 a, b = b, a
に注意してください。この式は基本的に、右側と左側に 2つの値のタプルを作成するために実行されます。次に、右側のタプルの最初の値が、左側のタプルの最初の変数に割り当てられます。最後に、右側のタプルの 2 番目の値が、左側のタプルの 2 番目の変数に割り当てられます。この操作は、2つの値を交換します。
Python で一時変数を使用して 2つの値を交換する
この方法では、一時変数を使用して 2つの値を交換します。2つの変数 a
と b
と一時変数 temp
について考えてみます。まず、a
の値が temp
にコピーされます。次に、b
の値が a
に割り当てられます。最後に、temp
の値が b
に割り当てられ、temp
変数が削除されるか、None
に設定されます。
同じことについては、次のコードを参照してください。
a = 5
b = 25
print("Before swapping")
print("a:", a, "b:", b)
temp = a # Step 1
a = b # Step 2
b = temp # Step 3
del temp # (optional)
print("After swapping")
print("a:", a, "b:", b)
出力:
Before swapping
a: 5 b: 25
After swapping
a: 25 b: 5
Python で XOR ロジックを使用して 2つの値を交換する
Python では、XOR
は^
記号で表されます。そして、それを使用して、次の方法でスワッピングを実行できます。このアプローチは整数に対してのみ機能することに注意してください。float
値の場合、次のエラーが発生します。
TypeError: unsupported operand type(s) for ^=: 'float' and 'float'`.
a = 5
b = 25
print("Before swapping")
print("a:", a, "b:", b)
a ^= b # Step 1
b ^= a # Step 2
a ^= b # Step 3
print("After swapping")
print("a:", a, "b:", b)
出力:
Before swapping
a: 5 b: 25
After swapping
a: 25 b: 5
著者: Vaibhav Vaibhav