在 Python 中互換兩個值
Vaibhav Vaibhav
2023年10月10日
通常在處理資料或程式設計時,我們會遇到必須交換兩個變數值的情況。例如,如果 a
儲存 5
而 b
儲存 25
,則交換後 a
將儲存 25
,而 b
將儲存 5
。本文將討論我們可以用來在兩個變數之間執行值交換的不同方法。
在 Python 中使用元組交換來交換兩個值
在 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
。這個表示式本質上是在右側和左側建立一個包含兩個值的元組。接下來,將右側元組的第一個值分配給左側元組的第一個變數。最後,右側元組的第二個值被分配給左側元組的第二個變數。此操作交換兩個值。
在 Python 中使用臨時變數交換兩個值
在此方法中,臨時變數用於交換兩個值。考慮兩個變數 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 邏輯交換兩個值
在 Python 中,XOR
用 ^
符號表示。並且,我們可以使用它以下列方式執行交換。請注意,此方法僅適用於整數。對於浮點值,我們將得到以下錯誤。
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