方法一:利用臨時變數(最基礎的用法,也是怎麼用都不容易出錯的方法)
方法二:python特有的,這種複製操作的原理等會再說。temp = a
a = b
b = temp
a,b = b,a
方法三:通過簡單的邏輯運算實現互換操作
方法四:通過異或運算(很巧妙)a = a + b
b = a - b
a = a - b
現在來說說方法二中的賦值操作:a = a^b
b = a^b # b = (a^b)^b = a
a = a^b # a = (a^b)^a = b
看例子:
也就是說,賦值運算是先計算等號右邊的b和a+b,再分別賦給等號左邊的a和b,它和下面這種分兩行的寫法得到的結果是不同的!所以一定要注意! 劍指offer 面試題3那個題就是這樣的。a =
0b =
1a,b = b,a+b
(a,b)
# 1 1
a =
0b =
1a = b
b = a+b
(a,b)
# 1 2
交換兩個變數方法
將兩個變數的值互換,相當簡單的問題。假設有變數a b int a int b 方法1 將a b的值互換,為 int tmp a a b b tmp 然而,如果要求不用中間變數,就交換變數的值,該怎麼做呢?乙個比較有效率且眾所周知的方法就是 方法2 三次異或操作 int a 10,b 12 a 101...
交換兩個變數的方法
例如交換兩個 int 變數 a,b int a,b int temp 建立臨時變數 temp a a b b temp int a 9 int b 6 a a b 執行後a 15 b a b b 15 6 9 a a b a 15 9 6 執行完後a 6,b 9 該方法的不足是,當a,b 值很大時,...
交換兩個變數
目的 實現兩個變數值的交換 以int 型別為例 方法一 使用臨時變數。優點 安全,適合任何型別資料交換,無溢位風險。缺點 保守 效率不高,需要使用第三方臨時變數 棧空間 1 void swap value int var1,int var2 2 方法二 利用 算術運算實現。優點 不需要額外的臨時變數...