text用法 - python plot text bbox




有沒有一種標準化的方法來交換Python中的兩個變量? (4)

Python從左向右評估表達式。 請注意,在評估分配時,右側會在左側評估。

http://docs.python.org/3/reference/expressions.html#evaluation-order

這意味著下面的表達式a,b = b,a

  • 評估右邊b,a ,也就是說在存儲器中創建兩個元素的元組。 這兩個元素是由標識符ba指定的對象,它們是在執行程序期間受到指令前存在的對象
  • 在創建這個元組之後,這個元組對像還沒有分配,但這並不重要,Python內部知道它在哪裡
  • 然後評估左側,也就是說元組被分配到左側
  • 由於左側由兩個標識符組成,所以元組被解包,以便第一標識符被分配給元組的第一個元素(因為它具有名稱b所以這是在交換之前b的對象)
    並且第二標識符b被分配給元組的第二元素(因為它的標識符是a所以它是以前在交換之前的對象)

該機制有效地交換了分配給標識符ab的對象

所以,回答你的問題:是的,這是在兩個對像上交換兩個標識符的標準方式。
順便說一下,對像不是變量,它們是對象。

在Python中,我已經看到了使用這種語法交換的兩個變量值:

left, right = right, left

這是否被認為是交換兩個變量值的標準方式,或者是否有一些其他方法通過常規交換兩個變量?


不適用於多維數組,因為這裡使用了引用。

import numpy as np

# swaps
data = np.random.random(2)
print(data)
data[0], data[1] = data[1], data[0]
print(data)

# does not swap
data = np.random.random((2, 2))
print(data)
data[0], data[1] = data[1], data[0]
print(data)

另請參閱交換Numpy數組的切片


我知道交換變量的三種方法,但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

這是交換兩個變量的標準方式,是的。





conventions