交换两个数字的替代方法

Alternate way for swapping two numbers

是否有更优雅的方法来执行以下任务,例如使用 struct(如在 C 中)而不是使用包含 2 个数字的列表:

def swapnumbers(alist):
    temp = alist[0]
    alist[0] = alist[1]
    alist[1] = temp

alist = [1, 2]

您不需要临时变量,只需交换元素即可:

def swapnumbers(alist):
    alist[0], alist[1] = alist[1], alist[0]

当然有

>>> a = [1, 2]
>>> a[0],a[1] = a[1],a[0]
>>> a
[2, 1]

是的。你可以做到 alist.reverse()lists 的 reverse 方法反转原位的元素(并且适用于任何(正)长度的列表)。

试试这个

a = [1, 2]
a[0] = a[0] + a[1]
a[1] = a[0] - a[1]
a[0] = a[0] - a[1]