Python中互换变量不创建临时变量的方法

在Python中,当我们想要互换两个变量的值或将列表中的两个值交换时,我们可以使用如下的格式进行,不需要创建临时变量:

x, y = y, x

这么做的原理是什么呢?

首先一般情况下Python是从左到右解析一个语句的,但在赋值操作的时候,因为是右值具有更高的计算优先级,所以需要从右向左解析

对于上面的代码,它的执行顺序如下:

先计算右值y,x (这里是简单的原值,但可能会有表达式或者函数调用的计算过程), 在内存中创建元组(tuple),存储y,x 分别对应的值;

计算左边的标识符,元组被分别分配给左值,通过解包(unpacking),元组中第一个标示符对应的值y,分配给左边第一个标示符x,元组中第二个标示符对应的值x,分配给左边第二个标示符y,完成了x和y的值交换。

posted @ 2023-01-16 21:34  麦克斯的园丁  阅读(78)  评论(0编辑  收藏  举报