有没有标准化的方法可以在Python中交换两个变量?
在Python中,我已经看到使用此语法交换了两个变量值:
left, right = right, left
这是否被认为是交换两个变量值的标准方法,还是有其他一些习惯上最常用的交换两个变量的方法?
回答:
Python从左到右计算表达式。请注意,在评估分配时,右侧的评估先于左侧。
http://docs.python.org/3/reference/expressions.html#evaluation-order
这意味着该表达式的以下内容a,b = b,a:
- 对右侧b,a进行求值,即在内存中创建两个元素的元组。这两个元素是由标识符b和所指定的对象a,它们在程序执行期间对指令进行加密之前就已存在
- 创建该元组后,仍未分配该元组对象,但这没关系,Python内部知道它在哪里
- 然后,评估左侧,即将元组分配给左侧
- 由于左侧是由两个标识符组成的,因此将元组解压缩,以便将第一个标识符a分配给元组的第一个元素(这是在交换之前为b的对象,因为它具有名称b)
,并且第二个标识符b分配给元组的第二个元素(该对象以前是交换之前的a,因为其标识符为a)
该机制有效地交换了分配给标识符的对象,a并且b
因此,回答你的问题:是的,这是在两个对象上交换两个标识符的标准方法。
顺便说一下,对象不是变量,而是对象。
以上是 有没有标准化的方法可以在Python中交换两个变量? 的全部内容, 来源链接: utcz.com/qa/400160.html