Python で 2つの値を交換する

Vaibhav Vaibhav 2023年10月10日
  1. Python でタプルスワップを使用して 2つの値をスワップする
  2. Python で一時変数を使用して 2つの値を交換する
  3. Python で XOR ロジックを使用して 2つの値を交換する
Python で 2つの値を交換する

データやプログラミング全般を扱うとき、2つの変数の値を交換しなければならない状況に陥ります。たとえば、a5 を格納し、b25 を格納している場合、a はスワップ後に 25 を格納し、b5 を格納します。この記事では、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つの変数 ab と一時変数 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
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.