2024-03-29 14:46:44 发布
网友
在Python中,我看到两个变量值使用以下语法交换:
left, right = right, left
这被认为是交换两个变量值的标准方法吗?还是有一些其他方法,按照惯例,最常交换两个变量?
这是交换两个变量的标准方法,是的。
Python evaluates expressions from left to right. Notice that while evaluating an assignment, the right-hand side is evaluated before the left-hand side.http://docs.python.org/3/reference/expressions.html#evaluation-order
Python evaluates expressions from left to right. Notice that while evaluating an assignment, the right-hand side is evaluated before the left-hand side.
http://docs.python.org/3/reference/expressions.html#evaluation-order
这意味着表达式a,b = b,a如下:
a,b = b,a
b,a
b
a
这个机制有效地交换了分配给标识符a和b的对象
因此,回答您的问题:是的,这是交换两个对象上的两个标识符的标准方法。 顺便说一下,对象不是变量,它们是对象。
我知道三种交换变量的方法,但是a, b = b, a是最简单的。有
a, b = b, a
x = x ^ y y = y ^ x x = x ^ y
或者简洁地说
x ^= y y ^= x x ^= y
w = x x = y y = w del w
x, y = y, x
这是交换两个变量的标准方法,是的。
这意味着表达式
a,b = b,a
如下:b,a
,也就是说,在内存中创建两个元素的元组。这两个元素是由标识符b
和a
指定的对象,这些标识符在程序执行过程中编码指令之前就存在a
分配给元组的第一个元素(这是在交换之前由于名称b
而在形式上是b的对象)第二个标识符
b
被分配给元组的第二个元素(这是交换前的对象,因为它的标识符是a
)这个机制有效地交换了分配给标识符
a
和b
的对象因此,回答您的问题:是的,这是交换两个对象上的两个标识符的标准方法。
顺便说一下,对象不是变量,它们是对象。
我知道三种交换变量的方法,但是
a, b = b, a
是最简单的。有异或(整数)
或者简洁地说
临时变量
元组交换
相关问题 更多 >
编程相关推荐