python 兩數交換新寫法原理


今天學python,突然發現沒有swap函數,那怎么交換兩個數呢,難道手寫交換,那效率太差了
 
我們看一下實例
 
a = 1
b = 2

a,b = b,a

print(a,b)
 
其實很簡單的原理,然而我卻琢磨了半天,可能陷入了過程化編程的思維里,一直糾結a和b到底誰先賦值,怎么交換了,想了半天百度一下,瞬間清晰了
 
個人想法:
變量只是存儲一個值,我們用用新變量指向另一個變量時,其實指向的是另一個變量存儲的值
那么這里就可以這么理解了,a,b = b,a 其實變相的給前面 a,b  兩個變量他們的指向的值

 

那么  a = b   b = a 為何又不行呢

 

因為 前面   a = b  時,變量  a  已經指向了b 的值,而后面  b = a  則把a指向的值又傳給了b
導致 a = b

 

其實 a,b  =  b,a  的運行步驟應該是
1、在內存中找到b的值,a的值   例如:b = 1  a = 2
2、重新賦值 a,b = 1,2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM