Python 可以在一行代码中交换两个变量的值,而不需要引入中间变量,这是因为它利用了序列解包的特性。具体来说,当你在一行中使用逗号分隔多个变量,并将它们赋值为另一个逗号分隔的值时,Python 会创建一个元组,并将元组中的值分别赋给等号左边的变量。
例如,要交换变量 `x` 和 `y` 的值,你可以这样写:
```python
x, y = y, x
这行代码首先创建了一个元组 `(y, x)`,然后将元组中的值分别赋给 `x` 和 `y`,从而实现 `x` 和 `y` 值的交换。
需要注意的是,Python 的这种写法对于少于 5 个变量的交换是有效的,因为 CPython 解释器在 3.8 版本之后,对于少于 5 个变量的交换采用了 ROT_* 指令来交换栈中的元素。当变量数超过 5 个时,Python 会使用序列解包的特性来进行交换。
希望这能帮助你理解 Python 中变量交换的机制。