點評:典型的送人頭的題目,在其他編程語言中不使用中間變量交換兩個變量的值可以使用異或運算,Python中還可以通過內置的字節碼指令直接交換兩個變量的值。
方法一: a = a ^ b b = a ^ b a = a ^ b
方法二: a, b = b, a 擴展:需要注意, a, b = b, a這種做法其實并不是元組解包,雖然很多人都這樣認為。
Python字節碼指令中有ROT_TWO指令來支持這個操作,類似的還有ROT_THREE,對于3個以上的元素,如 a, b, c, d = b, c, d, a,才會用到創建元組和元組解包。
想知道你的代碼對應的字節碼指令,可以使用Python標準庫中dis模塊的dis函數來反匯編你的Python代碼。