Python中4種實現數值的交換方式
1.使用臨時變量
該方法是最簡單的,也是最容易理解的,適用於所有編程語言,其實現過程如下:
tmp = a a = b b = tmp
2.使用tuple元組
該方法是Python下特有的方法,並且隻需要一行代碼即可實現,其使用到瞭元組(tuple),其大致原理如下:
右邊的 b, a 會構成一個由 b 和 a 組成的元組對元組進行拆包,然後再分別賦值給到左邊的 a, b
a, b = b, a
我們也可以借助列表,右邊放一個由 b 和 a 組成的列表來實現,但註意右邊不能放一個集合中,因為集合是無序的,會導致最終交換結果不對。
a, b, c, d = 100, 200, 3000, 400 # 右邊為元組 # a, b, c, d = d, c, b, a # print(a, b, c, d) # 400 3000 200 100 # 右邊為列表 # a, b, c, d = [d, c, b, a] # print(a, b, c, d) # 400 3000 200 100 # 右邊為集合,會導致最終交換數值不對 a, b, c, d = {d, c, b, a} print(a, b, c, d) # 400 100 3000 200
3.使用 加減法 或 乘除法
無論使用 加減法 或 乘除法,都不需要使用到臨時變量,其實現過程如下:
# 加減法 a = a + b b = a - b # b = (a + b) - b = a a = a - b # a = (a + b) - b = (a + b) - a = b # 乘除法 a = a * b b = a // b # b = (a * b) // b = a a = a // b # a = (a * b) // b = (a * b) // a = b
4.使用異或運算
異或運算的特點:0異或任一個數a,其結果為 a;任一數a異或自己,也就是 a異或a,其結果為 0。同時異或運算滿足交換律。
使用異或運算,也不需要使用到臨時變量,其實現過程如下:
a = a ^ b b = a ^ b # b = (a ^ b) ^ b = a ^ (b ^ b) = a ^ 0 = a a = a ^ b # a = (a ^ b) ^ b = (a ^ b) ^ a = (a ^ a) ^ b = 0 ^ b = b
到此這篇關於Python中4種實現數值的交換方式的文章就介紹到這瞭,更多相關Python數值交換內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- tuple在python中什麼意思 python中tuple的用法
- python內置數據類型使用方法和繼承關系
- Python元組定義及集合的使用
- Python的列表和元組詳情
- Python數據結構之列表與元組詳解