Python實現(xiàn)數(shù)值交換的四種方式
使用臨時變量
該方法是最簡單的,也是最容易理解的,適用于所有編程語言,其實現(xiàn)過程如下:
tmp = a a = b b = tmp
使用tuple元組
該方法是Python下特有的方法,并且只需要一行代碼即可實現(xiàn),其使用到了元組(tuple),其大致原理如下:
- 右邊的 b, a 會構(gòu)成一個由 b 和 a 組成的元組
- 對元組進(jìn)行拆包,然后再分別賦值給到左邊的 a, b
a, b = b, a
我們也可以借助列表,右邊放一個由 b 和 a 組成的列表來實現(xiàn),但注意右邊不能放一個集合中,因為集合是無序的,會導(dǎo)致最終交換結(jié)果不對。
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 # 右邊為集合,會導(dǎo)致最終交換數(shù)值不對 a, b, c, d = {d, c, b, a} print(a, b, c, d) # 400 100 3000 200
使用 加減法 或 乘除法
無論使用 加減法 或 乘除法,都不需要使用到臨時變量,其實現(xiàn)過程如下:
# 加減法 a = a + b b = a - b # b = (a + b) - b = a a = a - b # a = (a + b) - b = (a + b) - a = b #學(xué)習(xí)中遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流群:531509025 # 乘除法 a = a * b b = a // b # b = (a * b) // b = a a = a // b # a = (a * b) // b = (a * b) // a = b
使用異或運算
異或運算的特點:0異或任一個數(shù)a,其結(jié)果為 a;任一數(shù)a異或自己,也就是 a異或a,其結(jié)果為 0。同時異或運算滿足 交換律。
使用異或運算,也不需要使用到臨時變量,其實現(xiàn)過程如下:
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
到此這篇關(guān)于Python實現(xiàn)數(shù)值交換的四種方式的文章就介紹到這了,更多相關(guān)Python 數(shù)值交換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一文詳解如何在Python中從字符串中提取部分內(nèi)容
這篇文章主要介紹了如何在Python中從字符串中提取部分內(nèi)容的相關(guān)資料,包括使用正則表達(dá)式、Pyparsing庫、AST(抽象語法樹)、字符串操作和函數(shù)式編程,每種方法都有其適用場景和優(yōu)缺點,需要的朋友可以參考下2025-04-04pyecharts實現(xiàn)數(shù)據(jù)可視化
這篇文章主要介紹了pyecharts實現(xiàn)數(shù)據(jù)可視化,pyecharts 是百度開源的,適用于數(shù)據(jù)可視化的工具,配置靈活,展示圖表相對美觀,順滑,下面更多詳細(xì)內(nèi)容,需要的小伙伴可以參考一下2022-03-03關(guān)于pytorch求導(dǎo)總結(jié)(torch.autograd)
這篇文章主要介紹了關(guān)于pytorch求導(dǎo)總結(jié)(torch.autograd),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06Matplotlib繪圖基礎(chǔ)之配置參數(shù)詳解
Matplotlib?提供了大量配置參數(shù),這些參數(shù)可以但不限于讓我們從整體上調(diào)整通過?Matplotlib?繪制的圖形樣式,下面我們就來看看如何巧妙的運用這些參數(shù)吧2023-08-08