在 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