这个表达式有什么作用:(x, y) = (y, x % y)?

Nat*_*iya 1 python python-3.x iterable-unpacking

我看到下面的代码,但不知道它做什么。

(x, y) = (y, x % y)
Run Code Online (Sandbox Code Playgroud)

一开始我认为它在下面做:

x=y
y=x%y
Run Code Online (Sandbox Code Playgroud)

但我发现我不对。有人可以解释一下是什么 (x, y) = (y, x % y)吗?

sma*_*c89 7

这称为元组分配/解包,要线性重现它,您需要一个临时位置来存储x.

它更等同于:

temp=x
x=y
y=temp%y
Run Code Online (Sandbox Code Playgroud)