python 中的變數交換

2021-04-22 00:09:34 字數 718 閱讀 7687

之前有段時間想用python寫個交換兩個變數的值的函式,我們知道在c++中是傳入兩個變數的指標或者引用,但是python中並沒有指標或者引用的概念,而且資源**全部由python的執行環境接管了,要實現變數交換用函式實現反而麻煩了,直接a,b=b,a就把a和b的值交換了,呵呵,很簡潔吧,這是python的一貫作風,從**上看,連臨時變數都沒有用到。

可以用這個實現乙個簡單的氣泡排序,**如下:

narr = [1, 2, 5, 3, 6, 8, 4]

for i in range(len(narr) - 1, 1, -1):

for j in range(0, i):

if narr [j] > narr [j + 1]:

narr [j], narr [j + 1] = narr [j + 1], narr [j]

print narr 

說到交換兩個數不使用臨時變數,想起之前遇到得乙個著名的面試題,怎樣不使用臨時變數交換兩個變數的值,如果是使用python,這**還是什麼問題,一句搞定,呵呵,不過c++裡面怎麼實現呢,一種常見的做法如下:

b=a+b

a=b-a

b=b-a

不過這種實現是錯的,在a和b很小的時候沒有問題,但是當a和b很大的時候,二者的和會溢位,正確的實現方法如下:

a   ^=   b;

b   ^=   a;

a   ^=   b;

也就是使用異或在實現。

python 中交換變數的值

def exchange a 10 b 30 加法 a a b b a b a a b 乘法 a a b b a b a a b a a b b a b 或異運算 a a b print a is d a print b is d b exchange def exchange a,b b,a na...

Python交換變數值

平時時不時會面面實習生,大多數的同學在學校裡都已經掌握了python。面試的時候要求同學們實現乙個簡單的函式,交換兩個變數的值,大多數的同學給出的都是如下的答案 def swap x,y tmp x x y y tmp實際上,python中還有更簡潔的更具python風格的實現,如下 def swa...

變數的交換

變數的名字不能重名 變數的交換的第乙個思路 使用第三方的變數進行交換 var num1 10 var num2 20 把num1這個變數的值取出來放在temp變數中 var temp num1 把num2的這個變數的值取出來放在num1變數中 num1 num2 把temp變數的值取出來放在num2...